Zookeeper,Eureka,Nacos特点

发布时间

取Maven可用版本的时间
Zookeeper — 2010年
Eureka — 2012年
Nacos — 2018年

功能

Zookeeper,Eureka服务注册中心
Nacos服务注册中心+文件配置中心

CAP定律

Zookeeper — CP
Eureka — AP
Nacos — CP或AP(可配置,默认AP)

实际应用场景中,服务网络出问题不可避免的,所以目前开发中主要已AP策略为首选,可以通过数据库,中间件,乐观锁,分布式锁,补偿等策略保证数据最终一致性。

使用情况(个人接触的项目而言)

Zookeeper+Dubbo居多(历史原因)
Eureka+SpringClound居多
Nacos较新,也是配合SpringClound居多

注册中心功能

分布式注册中心主要2个功能:服务注册+配置注册,简单理解点就是一个注册表,所有服务节点都注册在上面,服务不可用就从注册表中剔除,再配合一些负载均衡的策略。
服务注册就是项目注册了。
配置注册主要指的是配置文件,常用的数据库配置,Redis等中间件配置,基础配置(一些自定义常量,如文件上传路径),日志配置。

配置注册

分布式项目,服务对应的数据库可能不同,但是中间件,基础配置,日志配置一般共用的,一旦配置文件变更,传统替换配置文件重启项目方案是不可行的,一是服务节点较多,二是重启过程中服务是不可用。一般都是通过配置中心+热部署取更新配置文件,即更新配置文件不需要重启服务就能获取新的值。

Nacos的优势就非常明显,本地部署,热更新,语法检错,配置文件分组等。
Zookeeper,Eureka一般配合Git做配置中心,配置文件上传到Git上,多少秒同步一次,Git国内访问速度就不多言了,码云还收费,还需要分开管理,线上编辑配置文件也没有校验机制,很容易因为一个逗号,空格造成配置文件错误,服务崩溃。

总结

新项目个人推荐Nacos,不仅仅是上面这些优点,还可以配合Seata实现配置级的,无需补偿机制的分布式事务实现(都是阿里系的,刚开源时间不长,应用较少),未来随着阿里在分布式框架技术栈不断完善,潜力巨大。

你可能感兴趣的:(分布式,分布式)