大家好,又见面了,我是你们的朋友全栈君。
服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。
比较成熟的解决方案如下:
名称 | 所属公司 | 是否开源 | 资料文档 | 备注 |
---|---|---|---|---|
Dubbo | 阿里巴巴 | 是 | 多 | |
HSF | 阿里巴巴 | 否 | 中 | 目前已作为阿里云产品EDAS其中的套件开放使用 |
Tars | 腾讯 | 是 | 中 | 已作为腾讯云应用框架对外提供使用 |
JSF | 京东 | 否 | 少 | |
Linkerd | CNCF | 是 | 少 | 原型是Twitter所构建的一个基于scala的可扩展RPC系统Finagle |
Motan | 新浪微博 | 是 | 中 | |
istio | 谷歌、IBM、Lyft | 是 | 少 |
Ps:Spring Cloud Eureka是Spring Cloud Netflix 微服务套件的一部分,主要负责完成微服务架构中的服务治理功能。
1.阿里 – Dubbo
2.阿里 – HSF
3.腾讯 – Tars
4.JSF
5.CNCF – Linkerd
6.新浪 – Motan
7.istio
大部分(Linkerd除外、MSEC没找到架构图)方案的设计风格非常相似,都是通过库的方式在调用客户端做的服务发现。那么除了实际的RPC调用之外,主要多了这3个动作:注册、订阅、变更下发。除了这3个核心动作之外,其它的辅助操作还有统计上报、鉴权等等,这也是我们搭建一个服务治理框架需要实现的功能。从MVP的角度来说,注册、订阅、变更下发是最基础的核心功能。
服务治理的扩展
在企业中,我们可以针对服务治理做更多的扩展。比如: 1.基于版本号的服务管理,可以用于灰度发布。 2.请求的复制回放,用于模拟真实的流量进行压测。 3.给请求打标签用于实时的在线压测。 4.更灵活的负载均衡和路由策略。 5.内置的熔断机制,避免整个分布式系统产生雪崩效应。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106582.html原文链接:https://javaforall.cn