一、服务发现现状分析
本节内容整理自 小马哥技术周报 : https://github.com/mercyblitz/tech-weekly
1、Spring cloud 服务发现现状
目前市面服务发现的组件有:
Spring Cloud Eureka:
优点: 1)Spring Cloud 官方推荐
2)AP模型,数据最终一致性
3)开箱即用,具有控制台管理
缺点: 1)客户端注册服务上报所有信息,节点多的情况下,网络,服务端压力过大,且浪费内存
2)客户端更新服务信息通过简单的轮询机制,当服务数量巨大时,服务器压力过大。
3)集群伸缩性不强,服务端集群通过广播式的复制,增加服务器压力
4)Eureka2.0 闭源(Spring Cloud最新版本还是使用的1.X版本的Eureka)
Spring Cloud Zookeeper
优点: 1)比较成熟的协调系统,dubbo,Spring cloud均可适配
2)CP模型,ZAB算法,数据强一致性
缺点: 1)维护成本较高,客户端,session状态,网络故障等问题,会导致服务异常
2)集群伸缩性限制,内存,GC和连接
3)无控制台管理
Spring cloud Consul
优点: 1)适用于Service Mesh架构,使用于JAVA生态
2)AP模型,Raft+Gossip算法,数据最终一致性
缺点: 1)未经大规模市场验证,无法保证可靠性
2)Go语言编写,内部异常排查困难
Spring Cloud Nacos
优点: 1)开箱即用,适用于dubbo,spring cloud
2)AP模型,数据最终一致性
3)注册中心,配置中心二合一,提供控制台管理
4)纯国产,久经双十一考验
缺点: 1)刚刚开源不久,社区热度不够,依然存在bug
2)0.5.0 注册服务无鉴权认证机制,存在风险