zookeeper 的理解

zookeeper  是分布式锁架构中 数据安全的问题:

可见性:

   JMM: volatile  synchnorized lock

原子性:

  synchronized lock

有序性:

  重新排序  volatile  synchnorized lock

 

分布式锁的解决方案:

mysql:

  使用行锁:  for update

  唯一索引

redis:

  setNx 命令; 如果key不存在就插入,否则就返回null

zookeeper:

  分布式协调框架

 半数协调机制

zookeeper  设置的集群一般都是基数的  如果设置的集群挂点之后存活的必须超过半数以上整个集群才能使用。

主集群能 读写, 其余的都只能读。

命令:

create -s 文件路径 内容     -s 是自动生成自增的序号

zookeeper中的监听watch

  数据内容的监听 ;   get path watch 

 

zookeeper中分布式锁其实就是基于  短暂有序节点+ watch(监听)   要是相互互斥

 

分布式中 使用锁的应用,

InterProcessMutex   lock = new InterProcessMutex(client , "临时的节点路径");

lock.acquire(); //抢占锁

lock.release();  //释放锁

 

 

 

zookeeper 的使用

 

1 使用在mq中用来监听生产者的消息, 等消费者消费之后来通知生产者的作用:
2 使用zookeeper还能设置主备操作,

加锁:

创建一个临时的节点,

释放锁:

删除临时节点

 

 

 

posted @ 2020-10-13 19:06  那一的眸相遇  阅读(120)  评论(0编辑  收藏  举报