其他分享
首页 > 其他分享> > 基于Consul做ServiceMesh服务网格架构

基于Consul做ServiceMesh服务网格架构

作者:互联网

之前的方案

《基于OpenResty与Consul实现服务网格ServiceMesh》 一文是2019年对服务网络架构的一个实践,里边有一些不完美的地方,比如每个服务节点上要装OpenResty + Consul client两个组件来做代理,OpenResty上要装微博开源的upsync插件来更新上游服务的upstream配置,且只能更新现有upstream的节点横向扩缩容,如果新增或者删除stream的话,需要使用远程的shell脚本执行来改OpenResty里的nginx.conf文件再执行reload操作。
2021年初笔者基于Ribbon + Spring Cloud Config,修改了Ribbon源码做自定义开发,做了一个客户端负载均衡组件:Ribbon向Config来获取服务列表,通过Pinger机制来对各个服务节点做健康检查,Config管理端修改了服务配置之后通过Spring Bus(kafka)来通知节点上的Config客户端库来重新获取配置。
做了这个项目之后,熟悉了负载均衡的玩法。后面笔者又做了OpenResty + Redis + RocketMQ的一个秒杀架构。又看了一些关于蚂蚁金服ServiceMesh架构的一些文章。又想起了自己曾经做了的这个ServiceMesh小Demo,决定重新优化一下架构。

新方案

下面说下新的优化思路:

1、跟之前的边车不同,这次边车只负责给客户端提供服务列表,并没有负责转发客户端的请求。客户端与服务端是直连调用的。
2、客户端进程内的Proxy库,可以基于spring-cloud-starter-consul-discovery来做封装和定制化二次开发。

优缺点:

标签:服务,Consul,网格,边车,OpenResty,ServiceMesh,节点,客户端
来源: https://www.cnblogs.com/lyhero11/p/15775426.html