微服务--zookeeper
2021-02-19 本文已影响0人
chanyi
1问题
1、dubbo如何实现服务注册中心
2、dubbo是如何通过zookeeper实现服务注册中心的
3、zookeeper在服务注册里面发挥着什么样的作用
2、zookeeper
1、如果通过zookeeper实现master选举
-
master选举使用模式是:选举出一个master负责主要的工作,其他的服务器作为master的备份,同时对master进行监听。如果master宕机了,则立即去争取做为master的权利。
-
master选举的本质:通过zookeeper的临时节点是唯一的,而且创建的临时节点的服务器宕机后,临时节点会自动删除。
-
master选举的过程:多个服务器争取创建一个/master/temp的节点。如果某个服务器创建成功之后,成为master节点。其他的服务器对此节点进行监控。如果创建该节点的服务器宕机或者网络原因导致链接中断,则这个临时节点将会被删除,zk服务器会通知监听了此临时节点的服务器。其他的服务器收到消息会将会再次争夺创建,争取到的服务器为master节点。
2、如果通过zookeeper集群自身的leader选举
leader选举是一种paxos的经典实现。
leader的选举过程:需要在集群中选举出一个leader和多个flower。首先多个服务器都有自己的id号,首先选择自己,自己不行,就选择id号大的。一旦超过半数以上,就不会再选择,直接成为leader。遵循的过半原则。
3、如果通过zookeeper实现分布式锁
4、如果通过zookeeper实现服务注册中心
使用zk作为服务注册中心,将不同的服务及服务的访问地址进行记录
如下:
所有微服务节点
|
|----用户服务
| | ---- 192.168.120.1
| | ---- 192.168.120.2
|----订单服务
| | ---- 192.168.120.3
| | ---- 192.168.120.4
如上图,zk需要支持在集群模式下的高可用。zk提供了节点,并且在节点下可以创建子节点。
- 实现方法:使用zk的监听功能(Watch),新增的节点到zk上创建了一个节点,此节点下线或者宕机之后,zk服务器会主动通知监听此子节点的服务。起到服务变动后通知的功能
(待续。。。)