# zookeeper **Repository Path**: jedli/zookeeper ## Basic Information - **Project Name**: zookeeper - **Description**: zookeeper不同应用场景下具体案例 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-08-18 - **Last Updated**: 2021-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zookeeper #### 介绍 zookeeper不同应用场景下具体案例 【zk-config-management】 基于Zookeeper实现简易版配置中心 实现思路: 1.创建springboot项目; 2.引入相关依赖,包括spring-web依赖、zookeeper依赖、mysql驱动依赖、数据库连接池druid依赖等; 3.将数据库配置信息写入zookeeper; 4.请求时,读取zookeeper中数据库配置信息并执行sql; 4.1读取zookeeper数据并监听; 4.2利用连接池获取连接操作数据库。 5.测试验证 5.1 数据准备 准备两个数据源:jdbc:mysql://localhost:3306/test和jdbc:mysql://47.101.41.95:3306/test 准备表数据 5.2 初始化数据源 5.3 启动项目并访问http://localhost:8080/getTbResume 5.4 切换数据源并访问http://localhost:8080/getTbResume 发现web端请求结果发生了改变 【zk-name-service】 基于Zookeeper命名服务实现分布式的ID生成器 实现思路: 1.服务初始化:即启动Zookeeper服务,初始化服务等; 2.构造顺序节点的完整路径:即先创建节点路径,比如这里路径为/NameService/IdGen; 3.在上面的路径中创建持久化顺序节点数据,这些节点数据就是我们所需要的id。 【zk-lock】 基于Zookeeper实现分布式锁 实现思路:基于模板模式来实现分布式锁 1.定义模板,即锁的实现骨架,包括:定义锁、等待锁、释放锁; 2.实现模块,即zookeeper定义锁实现模板,包括创建临时节点来定义锁,通过事件监听来等待锁, 关闭客户端连接(session会话)来释放锁; 3.测试:通过多个线程来创建订单序号模拟在分布式环境下独占锁使用情况。 【zk-register】 基于Zookeeper实现简单的服务注册中心 1.启动服务端时,将服务端注册到zookeeper中,以节点形式进行数据存储,节点为/zookeeper/server; 2.客户端启动时,从zookeeper中获取节点信息,并进行连接; 3.下线一个服务端,客户端与它断开连接; 4.某服务端上线后,客户端感知与它重新建立连接; 5.测试 5.1 分别启动两个服务端; 5.2 启动客户端; 5.3 停掉一个服务端; 5.4 启动停掉的服务端; #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)