Zookeeper搭建集群及协同

协同的实现

首先启动一个zkCli客户端(zkCLi-1),创建一个workers节点。

create /workers

使用ls监控当前节点。

ls -w /workers

[]

当前/workers中没有子节点。

新开一个zkCli客户端(zkCli-2),在/workers中创建一个新节点。

create -e /workers/w1 "w1:2220"

此时zkCli-1中收到通知。

WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/workers

使用ls在zkCli-1中查看节点信息。

ls -w /workers

返回

[w1]

此时在zkCli-2中执行quit退出。

zkCli-1中再次用ls查看。

[]

这样一个简单的协同服务就已经实现了。

集群搭建

在我们上一篇说的什么是挖矿?一文中,最后留下了一个问题,DPoS算法,这个类似于选举的算法。

Zookeeper集群中,也是使用了一种类似的选举算法,感兴趣的可以去了解一下Paxos算法的论文。

http://lamport.azurewebsites.net/pubs/paxos-simple.pdf

在Zookeeper集群中被选举出来的节点叫做leader,其他节点叫做follow。

为了方便演示,我将我本地的Zookeeper拷贝为了三份,不过记得修改它们三份中的配置文件。

需要修改的是dataDir的路径以及端口号。

服务器0中zoo.cfg

//修改部分
dataDir=/tmp/zookeeper/data0
clientPort=2190
//新增部分(三份cfg均相同)
server.0=127.0.0.1:3333:3334
server.1=127.0.0.1:4444:4445
server.2=127.0.0.1:5555:5556

服务器1中zoo.cfg

//修改部分
dataDir=/tmp/zookeeper/data1
clientPort=2191
//新增部分(三份cfg均相同)
server.0=127.0.0.1:3333:3334
server.1=127.0.0.1:4444:4445
server.2=127.0.0.1:5555:5556

服务器2中zoo.cfg

//修改部分
dataDir=/tmp/zookeeper/data2
clientPort=2192
//新增部分(三份cfg均相同)
server.0=127.0.0.1:3333:3334
server.1=127.0.0.1:4444:4445
server.2=127.0.0.1:5555:5556

分别启动三个Zookeeper服务端。

可以看到已经自动选出了一个Leader节点。

此时我们启动一个zkCli来使用这个三节点集群。

./zkCli.sh -server 127.0.0.1:2190,127.0.0.1:2191,127.0.0.1:2192

可以看到zkCli已经连接到port为2191的节点,也就是服务器1(一个Follower节点)。

现在我们关闭服务器1。

Zookeeper搭建集群及协同的更多相关文章

  1. ZooKeeper搭建集群

    ZooKeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性 ...

  2. Zookeeper分布式集群搭建

    实验条件:3台安装linux的机子,配置好Java环境. 步骤1:下载并分别解包到每台机子的/home/iHge2k目录下,附上下载地址:http://mirrors.cnnic.cn/apache/ ...

  3. 初始zookeeper与集群搭建实例

    zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务, ...

  4. 虚拟机搭建Zookeeper服务器集群完整笔记

    虚拟机搭建Zookeeper服务器集群完整笔记 本笔记主要记录自己搭建Zookeeper服务器的全过程,默认已经安装部署好Centos7. 一.虚拟机下Centos无法联网解决方案 1.首先调整虚拟机 ...

  5. window环境搭建zookeeper,kafka集群

    为了演示集群的效果,这里准备一台虚拟机(window 7),在虚拟机中搭建了单IP多节点的zookeeper集群(多IP节点的也是同理的),并且在本机(win 7)和虚拟机中都安装了kafka. 前期 ...

  6. 搭建zookeeper+kafka集群

      搭建zookeeper+kafka集群 一.环境及准备 集群环境:   软件版本: 部署前操作: 关闭防火墙,关闭selinux(生产环境按需关闭或打开) 同步服务器时间,选择公网ntpd服务器或 ...

  7. win10环境下搭建zookeeper伪集群

    一.下载zookeeper https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 这里笔者下载的是zookeeper-3.3.6 二.配置zoo ...

  8. 初识ZooKeeper与集群搭建实例

    原文链接:http://www.linuxidc.com/Linux/2015-02/114230.htm zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Ch ...

  9. Zookeeper+ActiveMQ集群搭建

    搭建三台虚拟机安装centos7.要提前安装好jdk环境 1.环境准备,搭建三台虚拟机ip分别是 192.168.192.130 192.168.192.131 192.168.192.134 Zoo ...

随机推荐

  1. layui table 表格查询无效问题

    [热身话题] 在开发的过程中,大量数据的展示大多采用表格的方式,直观,清晰.在这里,我也使用过一些框架Bootstrap.table ,Dev table ,layui table.本次采用的layu ...

  2. 地图 SDK 系列教程-在地图上展示指定区域(转载)

    腾讯位置服务地图SDK是一套提供多种地理位置服务的应用程序接口.通过调用该接口,开发者可以在自己的应用中加入地图相关的功能(如地图展示.标注.绘制图形等),轻松访问腾讯地图服务和数据,构建功能丰富.交 ...

  3. 【Beta阶段】第十二周Scrum会议

    [Beta阶段]第十二周Scrum会议 本次会议为第十二周第一次Scrum Meeting,会议对Beta阶段工作进行了总结,针对Beta阶段还未完成的问题进行了讨论. 会议时间为2019.12.3. ...

  4. PWA 学习笔记(三)

    基础技术简介 Promise: 1.ES6 引入的一种异步编程的解决方案,通过 Promise 对象来提供统一的异步状态管理方法 2.一般在使用 Promise 对象的时候,首先需要对其进行实例化 3 ...

  5. 【使用篇二】SpringBoot使用Druid作为数据源(19)

    Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目.Druid支持所有JDBC兼容数据库,包括了Oracle.MySQL.PostgreSQL.SQL Server.H2等.Druid在监 ...

  6. MySQL 优化 (三)

    参数优化 query_cache_size (1) 简介: 查询缓存简称QC,使用查询缓冲,mysql将查询结果存放在缓冲区中,今后对于同样的select语句(区分大小写),将直接从缓冲区中读取结果. ...

  7. 【洛谷5369】[PKUSC2018] 最大前缀和(状压DP)

    点此看题面 大致题意: 对于一个序列,求全排列下最大前缀和之和. 状压\(DP\) 考虑如果单纯按照题目中对于最大前缀和的定义,则一个序列它的最大前缀和是不唯一的. 为了方便统计,我们姑且规定,如果一 ...

  8. Jquery中的done() fail() then() $when()到底是什么

    ajax的传统写法: $.ajax({ url: "test.html", success: function(){ alert("哈哈,成功了!"); }, ...

  9. maven私服的配置使用

    maven的仓库分为本地仓库,远程仓库和私服仓库. 私服仓库一般是公司内部私有的,内部进行维护的.公司员工连接私服,从私服中下载jar,或者将自身的jar传到私服上.私服还可以从中央仓库下载jar,当 ...

  10. 挑战10个最难回答的Java面试题(附答案)

    译者:Yujiaao segmentfault.com/a/1190000019962661 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容 ...