Zookeeper

什么是Zookeeper :

一个分布式协调框架,它主要用来解决分布式应用中遇到的一些数据管理问题,如:统一的命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

Zookeeper的核心机制 :

  • 文件系统的数据结构

  • 事件监听机制

 

 

配置中心:

 

 

分布式锁:

 

 

增加顺序临时节点来完成加锁:

 

 

zookeeper 配置集群文件:

 

 

启动三台服务器:

 

 

查看服务器的状态:

 

 

curator基于临时节点实现分布式锁:

  • 配置nginx.conf文件: 反向代理

     

     

    curator依赖:

     <dependency>
               <groupId>org.apache.curator</groupId>
               <artifactId>curator-framework</artifactId>
               <version>2.12.0</version>
           </dependency>
           <dependency>
               <groupId>org.apache.curator</groupId>
               <artifactId>curator-recipes</artifactId>
               <version>2.12.0</version>
           </dependency>

    curator实现分布式锁:

@Autowired
CuratorFramework curatorFramework;

@PostMapping("/stock/deduct")
public Object reduceStock(Integer id) throws Exception {
 InterProcessMutex lock = new InterProcessMutex(curatorFramework,"/"+id);
 try{
   lock.acquire();
   orderService.reduceStock(id);
} catch(Exception e){
   if(e instanceof RuntimeException){
     throw e;
  }
} finally {
   lock.release();
}
 return "ok:"+port;
}

 

posted @ 2020-09-09 18:21  曹丽是我女朋友。  阅读(126)  评论(0编辑  收藏  举报