goku

关于API微服务网关

匆匆过客 提交于 2020-12-23 19:01:23
背景 我们都知道,在微服务架构风格里,一个应用会被拆分成多个小的服务系统,并且这些小系统都可以自成体系,可以拥有自己的数据库、框架语言等。它们通常都可以提供接口来被各种应用程序调用。 但是在UI上进行展示的时候,我们通常需要在一个界面上展示很多数据,这些数据可能来自于不同的微服务中。 打个比方:要查看一个电商平台的商品详情页,这个商品详情页包括标题、价格、库存、评价等等,这些数据可能在不同的微服务系统之中,如下所示: • 产品 - 负责提供商品的标题,描述,规格等。 • 价格 - 负责对产品进行定价,价格策略计算,促销价等。 • 库存 - 负责产品库存。 • 评价 - 负责用户对商品的评论,回复等。 现在,商品详情页需要从这些微服务中拉取相应的信息,问题来了? 由于用的是多个服务系统的架构,所以依靠单个数据库的 join 查询结果不可行,那么该怎么访问各个服务呢? 按照微服务设计的指导原则,我们的微服务可能存在下面的问题: • 服务使用了多种协议,因为不同的协议有不同的应场景用,比如可能同时使用 HTTP, AMQP, gRPC 等。 • 服务的划分可能随着时间而变化。 • 服务的实例或者Host+端口可能会动态的变化。 那么,对于前端的UI需求也可能会有以下几种: • 粗粒度的API,而微服务通常提供的细粒度的API,对于UI来说如果要调用细粒度的api可能需要调用很多次

几种部署Goku API Gateway的方式,最快一分钟可使用上网关

做~自己de王妃 提交于 2020-04-18 02:25:11
本文将介绍几种部署Goku API Gateway的方式,最快一分钟可使用上为网关,详情请看全文。 什么是Goku API Gateway? Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang 开发的运行在企业系统服务边界上的微服务网关。当您构建网站、App、IOT甚至是开放API交易时,Goku API Gateway 能够帮你将内部系统中重复的组件抽取出来并放置在Goku上运行,如进行用户授权、访问控制、防火墙、数据转换等;并且Goku 提供服务编排的功能,让企业可以快速从各类服务上获取需要的数据,对业务实现快速响应。 Goku API Gateway 的社区版本(CE)拥有完善的使用指南和二次开发指南,代码使用纯 Go 语言编写,拥有良好的性能和扩展性,并且内置的插件系统能够让企业针对自身业务进行定制开发。使用 Goku API Gateway 能让业务开发团队更加专注地实现业务。 一套完整的 Goku API Gateway 由一个 控制台 和 若干个 网关节点 组成。节点通过IP地址注册在控制台中,控制台内的配置项会对所有节点生效。控制台用于配置网关的运行信息,例如访问策略、转发的API信息等等;节点用于实际的转发。当控制台上发布了最新的配置,所有节点都会主动更新自己的运行配置;在控制台发布的配置支持版本管理,可以手动发布和回滚。