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

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

参与6

2同行回答

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

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

网关工作原理

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

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

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

收起
互联网服务 · 2020-04-29
浏览1543

提问者

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

问题来自

相关问题

相关资料

相关文章

问题状态

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