热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

注册中心_为什么阿里的dubbo注册中心要放弃zookeeper,而用Nacos?

篇首语:本文由编程笔记#小编为大家整理,主要介绍了为什么阿里的dubbo注册中心要放弃zookeeper,而用Nacos?相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了为什么阿里的dubbo注册中心要放弃zookeeper, 而用Nacos?相关的知识,希望对你有一定的参考价值。



首先,那么为什么说zookeeper不适合做服务注册中心呢?

 

从CAP角度来看

有个思考,从CAP角度考虑,服务注册中心是CP系统还是AP系统呢?

 

首先,服务注册中心是为了服务间调用服务的,那么绝对不允许因为服务注册中心出现了问题而导致服务间的调用出问题。

再者, 假如有node1,node2,node3,集群节点。 保存着可用服务列表ip1,ip2,ip3,试想如果此时不一致,比如node1只保存了ip1,ip2,此时服务读取node1的节点,那么会造成什么影响?

调用node1的服务,顶多就是负载均衡时不会有流量打到ip3, 然后等 node1同步回ip3后,又一致了,这对服务其实没什么太大影响。

所以,推出服务注册中心应该是个AP系统。

 

 

zookeeper是个CP系统,强一致性。

 

场景1, 当master挂了,此时,zookeeper集群需要重新选举,而此时服务需要来读取可用服务,是不可用的。 影响到了服务的可用性

当然你可以说服务本地有缓存可用列表。然而下面这种方式就更无法处理了。

场景2, 分区可用。试想,有3个机房,如果其中机房3和机房1,2网络断了, 那么机房3的注册中心就不能注册新的机器了么,这显然也不合理

从健康检查来看

技术分享图片

 

zookeeper是通过TCP的心跳判断服务是否可用

但TCP的活性并不代表服务是可用的,但TCP活性就说明服务是可用的么,答案显然是否定的,如: 连接池已经满了,DB挂了等

 

 


那么理想的注册中心是什么样的呢,思考下

 

1, 起码服务的自动注册,发现。 最好有新的服务注册上去时还能推送到调用端

2, 能对注册上来的机器方便的进行管理,能手工剔除(发送信号让服务优雅下线)、恢复机器

3,服务的健康检查,能真正的检测到服务是否可用

4, 如果再好点,可以看到是否有其他调用服务正在订阅注册上来的服务

5,如果能够带上些除了IP外的其它信息,那就更好了

 

 

关于 Nacos

https://yq.aliyun.com/articles/604028

 

欢迎关注下我的公众号, JVM和微服务方面

技术分享图片


推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 2018深入java目标计划及学习内容
    本文介绍了作者在2018年的深入java目标计划,包括学习计划和工作中要用到的内容。作者计划学习的内容包括kafka、zookeeper、hbase、hdoop、spark、elasticsearch、solr、spring cloud、mysql、mybatis等。其中,作者对jvm的学习有一定了解,并计划通读《jvm》一书。此外,作者还提到了《HotSpot实战》和《高性能MySQL》等书籍。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 熟练掌握Spring Cloud,终于成为Java工程师的面试门槛 ... [详细]
  • 护墙_搭建LVS负载均衡NAT和DR模式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了搭建LVS负载均衡NAT和DR模式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringCloudRibbon部分源码相关的知识,希望对你有一定的参考价值。1:ribbon是提供通过servi ... [详细]
  • 生产环境下JVM调优参数的设置实例
     正文前先来一波福利推荐: 福利一:百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。福利二 ... [详细]
  • 这篇文章主要讲解了“如何应对Android面试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何应对 ... [详细]
  • 微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]jvm一行代码是怎么运行的首先,java代码会被编译成字 ... [详细]
  • Java工程师书单(初级,中级,高级)
    简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序 ... [详细]
author-avatar
mobiledu2502869077
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有