随笔分类 -  zookeeper

摘要:zookeeper的安装与集群搭建参考:https://www.cnblogs.com/47Gamer/p/13789058.html 描述:本章主要讲java代码如何实现zookeeper节点的增删改查,用法与解释全部在注释里。 本教程的工程,使用maven、jdk8、springboot、zoo 阅读全文
posted @ 2020-10-09 22:17 47号Gamer丶 阅读(260) 评论(0) 推荐(0) 编辑
摘要:Zookeeper集群搭建: 描述:本章节主要单服务器搭建集群,在一个服务器上启动多 个不同端口的zookeeper服务,非真实环境。 真实环境下zookeeper集群会搭建在多个物理服务器上,并非单一的服务器,但搭建方式一样。 一、zookeeper安装 教程参考:https://www.cnbl 阅读全文
posted @ 2020-10-09 22:16 47号Gamer丶 阅读(184) 评论(0) 推荐(0) 编辑
摘要:linux 系统下 zookeeper 安装教程: 1.下载安装包 1)进入安装目录 cd /home/install/ 2)下载 wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz 2.安装 1 阅读全文
posted @ 2020-10-09 22:15 47号Gamer丶 阅读(99) 评论(0) 推荐(0) 编辑
摘要:1.zookeeper注册中心的配置安装 1.1 下载zookeeper包(zookeeper-3.4.6.tar.gz),ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一 阅读全文
posted @ 2020-09-14 22:25 47号Gamer丶 阅读(168) 评论(0) 推荐(0) 编辑
摘要:在分布式计算中,leader election 是很重要的一个功能,这个选举过程是这样子的:指派一个进程作为组织者,将任务分发给各节点。在任务开始前,哪个节点都不知道谁是 leader 或者 coordinator。当选举算法开始执行后,每个节点最终会得到一个唯一的节点作为任务 leader。除此之 阅读全文
posted @ 2020-09-06 23:42 47号Gamer丶 阅读(535) 评论(0) 推荐(0) 编辑
摘要:分布式锁的基本场景 如果在多线程并行情况下去访问某一个共享资源,比如说共享变量,那么势必会造成线程安全问题。那么我们可以用很多种方法来解决,比如 synchronized、 比如 Lock 之类的锁操作来解决线程安全问题,那么在分布式架构下,涉及到多个进程访问某一个共享资源的情况,比如说在电商平台中 阅读全文
posted @ 2020-09-06 23:13 47号Gamer丶 阅读(435) 评论(0) 推荐(0) 编辑
摘要:服务端接收数据请求 服务端收到的数据包应该在哪里呢?在上节课分析过了,zookeeper 启动的时候,通过下面的代码构建了一个ServerCnxnFactory cnxnFactory = ServerCnxnFactory.createFactory(); NIOServerCnxnFactory 阅读全文
posted @ 2020-09-02 22:34 47号Gamer丶 阅读(301) 评论(0) 推荐(0) 编辑
摘要:前面这么长的说明,只是为了清洗的说明事件的注册流程,最终的触发,还得需要通过事务型操作来完成。 在我们最开始的案例中,通过如下代码去完成了事件的触发。 zookeeper.setData(“/mic”, “1”.getByte(),-1) ; //修改节点的值触发监听 前面的客户端和服务端对接的流程 阅读全文
posted @ 2020-09-02 22:01 47号Gamer丶 阅读(414) 评论(0) 推荐(0) 编辑
摘要:ClientCnxnSocketNIO.doIO 服务端处理完成以后,会通过 NIOServerCnxn.sendResponse 发送返回的响应信息,客户端会在 ClientCnxnSocketNIO.doIO 接收服务端的返回,注意一下 SendThread.readResponse,接收服务端 阅读全文
posted @ 2020-09-01 10:43 47号Gamer丶 阅读(570) 评论(0) 推荐(0) 编辑
摘要:服务端有一个 NIOServerCnxn 类,用来处理客户端发送过来的请求 NIOServerCnxn ZookeeperServer-zks.processPacket(this, bb); 处理客户端传送过来的数据包 public void processPacket(ServerCnxn cn 阅读全文
posted @ 2020-08-26 22:01 47号Gamer丶 阅读(524) 评论(0) 推荐(0) 编辑
摘要:Watcher 的基本流程 ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:客户端注册 Watcher、服务器处理 Watcher 和客户端回调 Watcher客户端注册 watcher 有 3 种方式,getData、exists、getChildren;以如下代码为例来分 阅读全文
posted @ 2020-08-26 21:15 47号Gamer丶 阅读(242) 评论(0) 推荐(0) 编辑
摘要:通过 lookForLeader 方法选举完成以后,会设置当前节点的 PeerState,要么为 Leading、要么就是 FOLLOWING、或者 OBSERVING到这里,只是表示当前的 leader 选出来了,但是 QuorumPeer.run 方法里面还没执行完,我们再回过头看看后续的处理过 阅读全文
posted @ 2020-08-24 14:32 47号Gamer丶 阅读(415) 评论(0) 推荐(0) 编辑
摘要:通信流程图: 接收数据 Notification 和发送 ToSend ToSender Notification leader; 被推荐的服务器 sid zxid; 被推荐的服务器当前最新的事务 id peerEpoch; 被推荐的服务器当前所处的 epoch electionepoch; 当前服 阅读全文
posted @ 2020-08-21 23:03 47号Gamer丶 阅读(238) 评论(0) 推荐(0) 编辑
摘要:前面分析这么多,还没有正式分析到 leader 选举的核心流程,前期准备工作做好了以后,接下来就开始正式分析 leader 选举的过程: public synchronized void start() { loadDataBase(); cnxnFactory.start(); startLead 阅读全文
posted @ 2020-08-20 22:52 47号Gamer丶 阅读(198) 评论(0) 推荐(0) 编辑
摘要:以下说说Leader选举的getView的解析流程 public Map<Long,QuorumPeer.QuorumServer> getView() { return Collections.unmodifiableMap(this.quorumPeers); } getView 里面实际上返回 阅读全文
posted @ 2020-08-18 23:11 47号Gamer丶 阅读(164) 评论(0) 推荐(0) 编辑
摘要:Zookeeper 的一致性 Zookeeper 的来源 对于 zookeeper 的一致性问题,有很多朋友有疑问,我这边再帮大家从来源层面梳理一遍一致性的问题。上篇,我们讲到了 zookeeper 的来源,是来自于 google chubby。为了解决在分布式环境下,如何从多个 server 中选 阅读全文
posted @ 2020-08-17 22:44 47号Gamer丶 阅读(238) 评论(0) 推荐(0) 编辑
摘要:1. zookeeper 的名词复盘 1.1 集群角色: 1.2 数据模型 zookeeper 的视图结构和标准的文件系统非常类似,每一个节点称之为 ZNode,是 zookeeper 的最小单元。每个 znode上都可以保存数据以及挂载子节点。构成一个层次化的树形结构持久节点(PERSISTENT 阅读全文
posted @ 2020-08-07 11:50 47号Gamer丶 阅读(206) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示