Apache Zookeeper
Zookeeper的基本学习
编程写手
路漫漫其修远兮,吾将上下而求索!
展开
-
Zookeeper:实现队列节点
1.声明 当前内容主要用于本人学习和复习,当前内容为使用Zookeeper实现队列 当前内容思想来源:Queue 2.分析成图像 所谓的分布式队列,使用zookeeper来实现 就是在queues下面创建一个临时的序列的queue-节点 然后向其中放入数即可 队列消息拉取者,拉取第一队列的第一消息,消费完毕后删除掉 3.使用代码实现 /** * @description 利用zookeeper实现分布式队列 * @author hy * @date 2020-06-07 */ public c原创 2020-06-07 16:29:34 · 161 阅读 · 0 评论 -
Zookeeper:实现节点Double Barriers(即两次限定操作)
1.声明 当前内容主要用于本人学习和复习,当前内容为使用两个标记为当前的所有线程开启一起执行,并实现一起结束 使用workersNode作为工作节点的主要节点 所有的工作线程直接向workersNode节点下面的注册为子节点,当注册子节点达到执行数量,则开始工作 工作线程完毕后直接向finish节点注册节点,表示当前线程工作已经完成 通过finish节点的子节点数量达到指定数量则认为所有的节点都完成工作,即任务完成 2.主要实现 1.首先将所有的监听事件抽取出来成为一个抽象类:EventHandler原创 2020-06-07 15:01:58 · 290 阅读 · 0 评论 -
Zookeeper:实现节点Barriers(即限定操作)
1.声明 当前内容主要用于本人学习和复习之用,当前内容主要为使用Zookeeper实现壁垒的方式控制当前线程什么时候停止什么时候继续 当前内容来源:Barriers伪代码流程 2.查看分析流程 客户端调用当前的exists方法,并设置watch为true的方式,设置path为壁垒barrier节点 如果当前的exists方法返回的是false,那么这个壁垒消失,客户端继续前进 如果当前的exists方法返回的是true,那么当前的客户端等待从barrier获取监控事件,获取壁垒barrier节点 当监控事原创 2020-06-07 10:38:45 · 215 阅读 · 0 评论 -
Zookeeper:使用java方式操作Zookeeper(3)之服务监控
1.声明 当前内容用于本人学习和复习,当前的内容主要为节点监控 当前内容基于前面的demo:支付服务 2.在当前的服务拉取者添加对关注的服务的监控 /** * @description 支付服务的消费者(专门拉取服务) * @author hy * @date 2020-06-06 */ public class PayServiceConsumer { private static String payService = "/payService"; public static void m原创 2020-06-06 15:15:33 · 254 阅读 · 0 评论 -
Zookeeper:使用java方式操作Zookeeper(2)之模拟服务发布和获取
1.声明 当前内容主要用于本人学习和复习,当前内容主要为使用zookeeper模拟服务发布的测试和思考 由于zookeeper本身就是一个分布式服务协调的分布式应用,所以一般用来做为服务注册中心,于是本人思考开始模拟实现服务发布 提供一个支付服务节点 在支付节点下面直接注册可以使用的ip地址和对应的url 2.开始实现 1.提供的支付服务节点为payService 2.提供服务的ip地址为:192.168.1.101、192.168.1.102、192.168.1.103 3.提供的url为:/pay原创 2020-06-06 14:14:34 · 320 阅读 · 0 评论 -
Zookeeper:使用java方式操作Zookeeper(1)
1.声明 当前内容用于本人学习和复习,当前内容为简单的使用java操作当前的zookeeper 当前内容借鉴:Zookeeper官方文档 2.出现的错误 KeeperErrorCode = ConnectionLoss for /user 主要问题就是当前的时间太短了,无法启动连接就直接执行 解决方式,将当前的连接时间变长:new ZooKeeper(“192.168.1.103:2181”, 10000,null); KeeperErrorCode = MarshallingError for /原创 2020-06-05 17:21:57 · 327 阅读 · 0 评论 -
Zookeeper:zkCli命令的使用(3.4.14版本的命令)
1.声明 当前内容主要用于本人学习和复习,主要内容为使用zkCli中的命令 当前内容部分来源:Zookeeper官方文档,由于版本为3.4.14,所以部分命令是不同的 当前内容使用三个zookeeper节点形成集群:Zookeeper集群 2.测试create命令 随便连接集群中的一个节点 ./bin/zkCli.sh -server 192.168.1.105:2181 1.创建一个简单的node create /sim_node simpleNode 2.创建一个序列化节点 create -原创 2020-06-05 16:03:27 · 692 阅读 · 0 评论 -
Zookeeper:集群的搭建和启动
1.声明 当前内容用于本人学习和复习,当前内容主要为搭建Zookeeper集群三台电脑 当前内容主要来源:Zookeeper官方文档 2.查看官方文档的搭建方式 Running ZooKeeper in standalone mode is convenient for evaluation, some development, and testing. But in production, you should run ZooKeeper in replicated mode. A replicated原创 2020-06-05 12:14:26 · 401 阅读 · 0 评论 -
Zookeeper:入门和单机api的测试
1.声明 当前内容主要用于本人学习和复习,当前内容主要为Zookeeper的服务启动、客户端的连接以及简单的操作 当前内容来源:Zookeeper官方文档 2.配置和启动zookeeper 参照前面的博文 :CentOS7中安装启动zookeeper ./bin/zkServer.sh start 关闭 ./bin/zkServer.sh stop 3.使用客户端连接zookeeper并执行操作(测试api) 1.使用zkCli连接当前zookeeper Server ./bin/zkCli.sh -原创 2020-06-04 18:19:48 · 137 阅读 · 0 评论 -
Zookeeper:保证、简单的API和主要实现
1.声明 当前内容主要用于本人学习和复习,当前内容主要为Zookeeper的保证和简单的API 当前内容来源于:Zookeeper官方文档 2.保证 顺序一致性:客户端的更新将按照其发送顺序进行应用(zookeeper内部会自动标记每个执行方式并实现顺序执行) 原子性:结果只有更新成功或者失败(所有对数据的操作是原子操作) 单一系统映像:无论客户端连接到哪个服务器,客户端都将看到相同的服务视图(肯定啊,所有的节点内部都维护了一个相同的蓝图,并使用复制方式实现一致性) 可靠性:应用更新后,此更新将一直持续到原创 2020-06-04 17:03:30 · 136 阅读 · 0 评论 -
Zookeeper:数据模型和节点概念
1.声明 当前内容主要用于本人学习和复习,当前内容主要为Zookeeper的数据模型和节点内容介绍 当前内容来源:Zookeeper官方文档 2.Zookeeper数据模型 Zookeeper的数据模型就是类似Linux的文件系统,使用/开头 查看官方图解: 可以看到当前的zookeeper节点可以是文件夹,也可以是文件 3.znode节点 1.zookeeper中的节点中都可以与其管理的数据和子节点(使用数据结构模拟) class Znode{ Object data; Znode subZnode原创 2020-06-04 16:14:26 · 359 阅读 · 0 评论 -
Zookeeper:基本概念和设计目的
标题原创 2020-06-03 19:14:40 · 400 阅读 · 0 评论