zoukankan      html  css  js  c++  java
  • 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还能设置主备操作,

    加锁:

    创建一个临时的节点,

    释放锁:

    删除临时节点

     

  • 相关阅读:
    php 元字符与转义
    php内置函数
    php系统常量
    WPF 批量修改控件属性
    对实体属性值赋值(DATASET转list)
    WPF 进度条实现
    WPF 异步刷新主界面
    c# 依赖注入Export ImportMany
    Oracle 正则匹配实现字符拆分
    Oracle 获取表对应列信息和索引信息
  • 原文地址:https://www.cnblogs.com/yishuo/p/13810590.html
Copyright © 2011-2022 走看看