美文网首页
3.12:注册中心

3.12:注册中心

作者: 今年花开正美 | 来源:发表于2020-07-13 23:52 被阅读0次

微服务架构中,注册中心基本上是第一个接触到的中间件,今天就简单的分析下注册中心的本质和选择依据。

下面就从以下三点来学习和分析吧:

  • 注册中心本质
  • Zookeeper是注册中心的最佳选择吗?
  • 注册中心选型对比

1、注册中心本质

基本功能:
注册中心本质.png

如图所示,注册中心的基础功能主要包括如下三点:
1.服务注册/服务发现,这个是注册中心最最基本的功能了。
2.故障发现/服务提出,在运行过程中,难免会出现部分服务出现异常done机的情况,这时候注册中心就需要能自动的发现故障,并及时剔除对应的服务
3.服务恢复/重新发现,故障的服务在重新启动恢复后,又需要重新的注册以及重新发现。

以上三点应该是注册中心最核心的功能了,当然,如果需要做的更加完善,还需要提供监控以及服务管理功能。

CP or AP

注册中心的最基本的功能,其实也就是提供数据的存取功能,因此我们需要分析下会出现数据不一致的场景。

个人任务主要有以下两种情况:
1.注册中心1与注册中心2数据不一致,服务调用方连接不同的注册中心。导致不同的服务调用方获得的服务提供者IP列表不一致。
2.服务调用方本地存储服务提供者IP列表,当服务调用方与注册中心网络故障时,若注册中心内的服务提供方IP有变更,此时服务调用方无法及时更新本地存储的服务提供者IP列表。导致不同的服务调用方获得的服务提供者IP列表不一致。

当数据出现不一致时,注册中心到底影响的是什么呢?其实分析下就会发现,影响的也就是流量不均衡
因为在服务调用方会有本地缓存,当数据不一致时,最终体现的也就是不同的服务调用方进行路由时的服务提供列表不一样。

因此可以分析得出,注册中心其实只要满足AP即可,无须保证数据的强一致性。

2、Zookeeper是注册中心的最佳选择吗?

最近关于Zookeeper不是注册中心的最佳选择的分析文章很多,我也就简单的说说我的理解吧。先看下下图:


Zookeeper多机房部署.png

如上图所示,Zookeeper分别部署在三个机房,重点分析下下面两种情况:
1.A和B机房之间网络断开,或者B和C机房之间网络断开,此时由于Zookeeper选举机制的N/2+1仍然是满足的,所以Zookeeper集群仍正常服务。影响的只是单独出去的机房,比如上述情况的B机房或者C机房。这种情况下面,B机房或者C机房的服务是无法注册和无法发现的
2.A、B、C三个机房的网络都断开了,这个时候整个Zookeeper的选举都是无法成功的,最终导致所有机房的服务都无法注册和无法发现,进而系统无法正常使用。

从这两点分析,再结合上述分析注册中心是AP的,可以得出Zookeeper不是注册中心的最佳选择的原因:
1.注册中心的本质是AP,而Zookeeper的本质是CP的。
2.在复杂的或者大量的服务节点(1000+)场景下,Zookeeper是不适合作为注册中心的。

3、注册中心选型对比

最后,来对比下目前市面上常见的注册中心吧。


注册中心选型对比.png

上图简单的从两个维度来对比了目前大部分注册中心,我们可以根据自己的业务常见来选择了,是选择CP的还是AP?

相关文章

  • 3.12:注册中心

    微服务架构中,注册中心基本上是第一个接触到的中间件,今天就简单的分析下注册中心的本质和选择依据。 下面就从以下三点...

  • Dubbo(学习中)

    Dubbo提供的注册中心 Multicast注册中心 Zookeeper注册中心 Redis注册中心 Simple...

  • Dubbo学习(二)注册中心及管理平台

    注册中心的选择 dubbo支持多种类型的注册中心: Multicast注册中心 Zookeeper注册中心 Red...

  • 注册中心

    consul

  • 注册中心

    etcd注册中心分布式一致性系统基于raft一致性协议 etcd使用场景服务注册和发现共享配置分布式锁Leader...

  • 注册中心

    ./consul agent -dev

  • 注册中心

    类结构图 RegistryCenter 为操作注册中心的顶层接口。CoordinatorRegistryCente...

  • 注册中心

    百发失一,不足谓善射;千里蹞步不至,不足谓善御;伦类不通,仁义不一,不足谓善学。学也者,固学一之也。一出焉,一入焉...

  • 注册中心

    注册中心是微服务架构中的通信中心,服务的消费端可以从中获取服务提供方的地址、状态等信息。 核心功能: 服务发现。服...

  • Euryka服务注册中心做集群

    1.准备多个注册中心微服务 2.多个注册中心相互注册 3.微服务注册到多个注册中心 4.测试

网友评论

      本文标题:3.12:注册中心

      本文链接:https://www.haomeiwen.com/subject/disthktx.html