04 | Service Mesh 的事实规范

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。

一、service mesh出现的背景

微服务的好处:把复杂的系统拆开,便于代码的维护,降低升级成本,机动性得到提高,简化开发流程。
带来的问题:复杂的分布式架构使得各个微服务之间的连接管理、服务治理、监控变的非常复杂。

为了解决这些问题而实现了负载均衡、动态路由、服务发现、高可用、熔断等功能,跨语言服务化中同样有类似的问题。所以需要一个通用的解决方案,就是service mesh。

service mesh实现功能的边界:业务无关、透明的基础层解决微服务之间连接、流量控制、服务治理、监控和遥测等问题。

在这里插入图片描述

数据面板:
以sidecar的模式与service部署在一起,保障请求数据在service之间进行可靠传输,提供服务治理以及请求状态数据的提取与检测。

控制面板:
主要控制服务间流量流向,请求路由,提供一种对数据面板访问策略实施的干预机制和服务依赖,服务状态的监控功能。

二、weiboMesh 数据面板

xxMesh感觉是一个概念或者整个方案的称呼,具体的里面分为各个组件,实现不同的功能。

Motan-go的agent是weiboMesh的数据面板,由server agent和client agent组成,server agent 作为服务提供方的方向代理使用(别的服务访问我这个服务时先经过server agent),client agent 作为服务依赖方调用服务的正向代理(有赞的Tether目前实现的就是这个,消费别的服务时先经过Tether)。
使用时只需要配置service(所提供的服务)和referer(所依赖的服务),2个功能由同一个agent进程提供,执行时运行不同的配置段,当需要升级的时候独立应用进行。

在这里插入图片描述

吐槽下:这个课程真的是,说的感觉不是很清楚啊。。。

上面的图我自己理解下:

client和server 就是服务,调用方和被调用方。
agent就是在sidecar中的一个组件,在调用和被调用时走的时client-agent(正向代理) 和 server-agent(反向代理) 。
agent之间可以使用自己定义的协议通信,服务和sidecar中的agent可以使用任意合适的协议。

服务注册、发现、高可用、负载均衡、监控、跟踪、依赖关系等其他数据收集都可以在agent这一层来做。

三、weiboMesh控制面板

控制面板实现了:流量的动态控制和策略执行,拓展了filter机制实现了身份验证、安全管理、监控等数据收集,为做决策提供决策依据。

在这里插入图片描述

weiboMesh在启动的时候除了订阅所依赖的服务外,还会订阅各种控制策略执行所需要的执行指令。
数据面板的agent承接了所有服务的访问,请求的流入流出,掌握所有请求的实时数据,请求状态,并通过Metrics组件将数据推送到决策系统(包括动态流量调度和服务治理体系)。
决策系统通过预先建立好的模型,实时计算出集群的流量负载情况,当触发预警时,生成调度命令,发给注册中心。
client agent 实时更新指令并出发cluster更新服务的实例列表,请求过程中负载均衡器会根据指令分配流量到不同的集群中。

weiboMesh 通过agent、注册中心、决策系统的共同作用来实现请求的高效稳定传输和服务的统一治理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章