在微服务架构下,如何设计API网关达到服务治理、分流限流和熔断?

在微服务架构下,如何使用API网关实现服务治理、分流限流和熔断?使用API网关还能提供哪些架构设计的优势?

参与6

2同行回答

尘世随缘尘世随缘  技术总监 , 上海某互联网金融公司
在谈到网关的时候,首先需要确认下目前微服务的业务线有几条,如果只有单一的业务线,其实有没有网关意义不大。其实网关可以理解为一个反向路由,它屏蔽内部细节,为调用者提供统一入口,接收所有调用者请求,通过路由机制转发到服务实例,同时网关也是“过滤器”集合,可以实现一系列与业...显示全部

在谈到网关的时候,首先需要确认下目前微服务的业务线有几条,如果只有单一的业务线,其实有没有网关意义不大。
其实网关可以理解为一个反向路由,它屏蔽内部细节,为调用者提供统一入口,接收所有调用者请求,通过路由机制转发到服务实例,同时网关也是“过滤器”集合,可以实现一系列与业务无关的横切面功能,如安全认证、限流熔断、日志监控。

网关工作原理

n 协议转换 : 将不同的协议转换成“通用协议”,然后再将通用协议转化成本地系统能够识别的协议 ,例如把 http 协议统一转换为 dubbo 协议。

n 链式处理: 消息从第一个插件流入,从最后一个插件流出,每个步骤的插件对经过的消息进行处理,整个过程形成了一个链条。优势在于它将处理请求和处理步骤分开,每个处理的插件,只关心这个插件上需要做的处理操作,处理步骤和逻辑顺序由“链”来完成。**

n 异步请求: 所有的请求都会通过 API 网关访问应用服务,无论业务量如何变化,网关的吞吐量要保持稳定状态。 假如把网关的请求看成一次 IO 操作的话,处理请求的线程,从接受请求开始直到服务端返回响应,都是阻塞状态。操作系统所能承载的线程数是有限的,如果多个线程都处在这种状态,会导致系统缓慢。异步请求是指每个请求访问网关的时候,会被包装成一个事件, CPU 内核会维持一个监听器,不断轮询请求事件,请求的线程不用一直等待数据的返回。它在请求完毕以后,就直接返回了。 **

收起
互联网服务 · 2020-04-29
浏览1497
StevenSteven  IT顾问 , steven
自己设计实现API网关?建议直接选择api网关组件或产品,这些组件或产品经过了众多客户的测试和验证,会减少很多测试工作和优化工作。API网关可以实现内部之间和内外的生态互连协作,和微服务网关是不同的,是两个层次。通常可以在api网关层定义规则,实现分流、限流、熔断、负载分发...显示全部

自己设计实现API网关?建议直接选择api网关组件或产品,这些组件或产品经过了众多客户的测试和验证,会减少很多测试工作和优化工作。
API网关可以实现内部之间和内外的生态互连协作,和微服务网关是不同的,是两个层次。通常可以在api网关层定义规则,实现分流、限流、熔断、负载分发、安全认证等治理能力。
我们觉得使用API网关使微服务的设计简化,通过提供标准化的API接口并通过API portal管理这些API,会极大的方便开发人员之间的协作。当然对api的设计能力要求就相对较高,否则可能需要不断
实现各种API。

使用API网关可方便的提供一层安全的可重用服务层

收起
证券 · 2020-04-17
浏览1908

提问者

beatles_wang
项目经理中国大地财产保险股份有限公司
擅长领域: 存储云计算灾备

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-04-17
  • 关注会员:3 人
  • 问题浏览:2573
  • 最近回答:2020-04-29
  • X社区推广