微服务的网关必要性?

在早期的互联网dubbo架构中服务之间都是通过直连的方式进行处理的,所有服务的限流,熔断,降级,负载等功能,都集中在服务的消费者这一端,随着新的spring cloud等架构的兴起,基于网关模式的服务管理模式逐渐成为主流,将服务之间的调用关系更加解耦,并逐渐把服务治理的重心放到了网关上。请问这两种模式的发展逻辑以及优缺点有哪些?

参与11

2同行回答

zhuqibszhuqibs软件开发工程师Adidas
(1)更早期, 其实是基于企业总线的架构,很多的功能都在总线上实现,而服务都挂载在总线上。(2)而后出现了网关,由网关去分发访问请求,到下面的各种服务,而对服务的鉴权、限流、熔断等功能都是服务自己去实现,网关只是分发。这样会导致重复造轮子的问题。(3)而后,对服务的这些于共性的功...显示全部

(1)更早期, 其实是基于企业总线的架构,很多的功能都在总线上实现,而服务都挂载在总线上。
(2)而后出现了网关,由网关去分发访问请求,到下面的各种服务,而对服务的鉴权、限流、熔断等功能都是服务自己去实现,网关只是分发。这样会导致重复造轮子的问题。
(3)而后,对服务的这些于共性的功能前置到网关,但又带来个问题网关上负载大幅增加,成为瓶颈;
(4)微服务架构出现后,网关也微服务化了,成为微服务网关,每个微服务都可以由网关单独控制,做到精细化控制。而网关可以变成pod在集群中,也可以负载均衡,这样可以承担更大的负载。

收起
互联网服务 · 2020-04-15
浏览1177
尘世随缘尘世随缘技术总监上海某互联网金融公司
网关可以理解为一个反向路由,它屏蔽内部细节,为调用者提供统一入口,接收所有调用者请求,通过路由机制转发到服务实例,同时网关也是“过滤器”集合,可以实现一系列与业务无关的横切面功能,如安全认证、限流熔断、日志监控。网关工作原理**n 协议转换 : 将不同的协议转换成“通用...显示全部

网关可以理解为一个反向路由,它屏蔽内部细节,为调用者提供统一入口,接收所有调用者请求,通过路由机制转发到服务实例,同时网关也是“过滤器”集合,可以实现一系列与业务无关的横切面功能,如安全认证、限流熔断、日志监控。

网关工作原理**

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

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

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

收起
互联网服务 · 2020-04-27
浏览1019

提问者

t3573393
研发工程师兴业数金
擅长领域: 存储云计算微服务

问题来自

相关问题

相关资料

问题状态

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