技术科普丨服务发现和负载均衡的来龙去脉 (3)

技术科普丨服务发现和负载均衡的来龙去脉

Service Mesh服务网关解耦调用和通信,在非mesh下,对于协议的感知和服务发现方法的感知需要应用去做,用mesh之后,就只管调用,mesh通过控制面来控制应用的数据流。

Mesh做服务发现其实是客户端发现模式的升级版,基于sidecar和pilot实现,Sidecars,即数据面板(Data Plane),负责发现目标服务实例地址列表并转发请求。Pilots,即控制面板(Control Plane),负责管理服务注册表的所有服务注册信息。

服务注册模式

一个选择是服务实例自注册,即self-registration模式。另一种选择是其它的系统组件来管理服务实例的注册,即third-party registration模式。

自注册模式如前面所述,它足够简单,不需要第三方组件,缺点是必须为服务中用到的每种编程语言与框架实现注册代码。

第三方注册服务实例不会自己完成注册注销,它由另一个叫做Service Registrar的系统组件负责,该组件会轮询部署环境或者跟踪订阅事件去感知服务实例的变化,帮助服务实例完成自动化注册注销。

Third-party registration模式主要的优势在于解耦了服务和服务注册表。不需要为每个语言和框架都实现服务注册逻辑。服务实例注册由一个专用的服务集中实现。缺点是除了被内置到部署环境中,它本身也是一个高可用的系统组件,需要被启动和管理。

其他

如果某个服务对于的服务实例特别多,比如在一些头部公司,一个服务名可能对应几千几万个服务实例,这样,服务变更的查询和对比会很慢,IO的量会大得超过想象,通常,会用version num去解决这个问题。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyygwx.html