zookeeper的应用实践

zk的应用场景大致如下:

1.作为配置中心,我们会作为dubbo,spring cloud的注册与发现中心来使用。

通常 分布式服务,将服务的地址,接口信息,注册到zk,调用着去读取zk中注册的地址列表,以此来达到远程调用的效果。
zookeeper的应用实践_第1张图片

2.分布式协调

当A系统执行某个任务之后,B系统异步再执行,执行完之后,如何把执行完成的消息再推送给A系统,这里就可以使用zk的节点监听来完成这个任务,当A系统执行某个任务时,创建一个节点,并监听这个节点的状态,当b系统完成的时候,改变这个节点,这个时候,A系统便能接收到完成的消息
zookeeper的应用实践_第2张图片

3.分布式锁
当多个机器同时并发执行某个操作的时候,但是这个操作只能单线执行,这个时候就需要分布式锁来控制了
对某一个数据连续发出两个修改操作,两台机器同时收到了请求,但是只能一台机器先执行完另外一个机器再执行。那么此时就可以使用 zookeeper 分布式锁,一个机器接收到了请求之后先获取 zookeeper 上的一把分布式锁,就是可以去创建一个 znode,接着执行操作;然后另外一个机器也尝试去创建那个 znode,结果发现自己创建不了,因为被别人创建了,那只能等着,等第一个机器执行完了自己再执行。
这里面利用了zk的节点只能注册一个的机制,有点像文件系统的创建文件,相同名称的文件只能创建一个,保证创建的原子性,另外有时也会创建临时顺序节点,临时顺序节点会产生递增的次序的节点,并且随着会话的失效而自动删除,使用临时顺序节点实现分布式锁,会监听前一个序号的节点来进行获取锁
zookeeper的应用实践_第3张图片

4.HA高可用性
还是利用zk的节点特性,如果部署的主机断开连接,宕机 ,临时节点就会失效而删除,监听了该节点的备机就会接到通知,立马启动起来升级为主机,提供服务
zookeeper的应用实践_第4张图片

你可能感兴趣的:(微服务,技术点分析,分布式学习系列)