为了让服务器之间可以通信,服务器间需要一些联系信息。理论上,服务器可以使用多播来发现彼此,但我们想让ZooKeeper集合支持跨多个网

络而不是单个网络,这样就可以支持多个集合的情况。

为了完成这些,我们将要使用以下配置文件:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=./data
clientPort=2181
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445

  每一个server.n项指定了编号为n的ZooKeeper服务器使用的地址和端口号。每个server.n项通过冒号分隔为三部分,第一部分为服务器n的IP地址或主机名(hostname),第二部分和第三部分为TCP端口号,分别属于仲裁通信和群首选举。因为我们在同一个机器上运行三个服务器进程,所以我们需要在每一项中使用不同的端口号。通常,我们在不同的服务器上运行每个服务器进程,因此每个服务器项的配置可以使用相同的端口号

我们还需要分别设置data目录,我们可以在命令行中通过以下命令来
操作:

mkdir z1
mkdir z1/data
mkdir z2
mkdir z2/data
mkdir z3
mkdir z3/data

当启动多个服务器时,我们需要知道启动的是哪个服务器。一个服务器通过读取data目录下一个名为myid的问件来获取服务器ID信息。可以通过以下命令来创建这些文件:

echo 1 > z1/data/myid
echo 2 > z2/data/myid
echo 3 > z3/data/myid

  当服务器启动时,服务器通过配置配件中的dataDir参数来查找data目录的配置。它通过mydata获得服务器ID,之后使用配置问件中server.n对应的项来设置端口并监听。当在不同的机器上运行ZooKeeper服务器进程时,它们可以使用相同的客户端端口和相同的配置问件。但对于这个例子,在一台服务器上运行,我们需要定义每个服务器的客户端端口。

现在可以启动服务器,让我们从z1开始:

cd z1
$ {PATH_TO_ZK}/bin/zkServer.sh start ./z1.cfg

我们使用zkCli.sh来访问集群:

$ {PATH_TO_ZK}/bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

注意:简单的负载均衡
客户端以随机顺序连接到连接串中的服务器。这样可以用ZooKeeper
来实现一个简单的负载均衡。不过,客户端无法指定优先选择的服务器来
进行连接。例如,如果我们有5个ZooKeeper服务器的一个集合,其中3个
在美国西海岸,另外两个在美国东海岸,为了确保客户端只连接到本地服
务器上,我们可以使在东海岸客户端的连接串中只出现东海岸的服务器,
在西海岸客户端的连接串中只有西海岸的服务器。

ZooKeeper与仲裁模式的更多相关文章

  1. Zookeeper 部署Zookeeper仲裁模式集群

    部署Zookeeper仲裁模式集群 本例在一台服务器上部署3个zk服务:z1.z2.z3. 1.下载Zookeeper https://zookeeper.apache.org/ 2.解压缩 .tar ...

  2. 28.zookeeper单机(Standalones模式)和集群搭建笔记

    zookeeper单机(Standalones模式)和集群搭建: 前奏: (1).zookeeper也可以在windows下使用,和linux一样可以单机也可以集群,具体就是解压zookeeper-3 ...

  3. Hyper-v群集的仲裁模式配置依据

    1,仲裁配置的原理 节点多数(推荐用于含有奇数个节点的群集) 可以承受的故障节点数为节点数的一半(四舍五入)减去一.例如,七个节点的群集可以承受三个节点出现故障. 节点和磁盘多数(推荐用于含有偶数个节 ...

  4. Zookeeper实战之嵌入式执行Zookeeper集群模式

    非常多使用Zookeeper的情景是须要我们嵌入Zookeeper作为自己的分布式应用系统的一部分来提供分布式服务.此时我们须要通过程序的方式来启动Zookeeper.此时能够通过Zookeeper ...

  5. zookeeper三种模式安装详解(centos 7+zookeeper-3.4.9)

    zookeeper有单机.伪集群.集群三种部署方式,可根据自己实际情况选择合适的部署方式.下边对这三种部署方式逐一进行讲解. 一 单机模式 1.下载 进入要下载的版本的目录,选择.tar.gz文件下载 ...

  6. linux下面Zookeeper的单机模式(standalone)

    1.下载 zk下载地址 http://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 我用的是http://mirrors.tuna.tsinghua.e ...

  7. 3、zookeeper 集群模式搭建

    服务器 1:192.168.1.81  端口:2181.2881.3881 服务器 2:192.168.1.82  端口:2182.2882.3882 服务器 3:192.168.1.83  端口:2 ...

  8. zookeeper集群模式安装

    服务器节点规划: 节点1:192.168.0.103 节点2:192.168.0.104 节点3:192.168.0.105 安装zookeeper,将zookeeper上传到三个服务器,保存在/ho ...

  9. 【Zookeeper】本地模式安装

    安装步骤 上传gz包 通过rz命令,将zookeeper-3.4.10.tar.gz安装包上传到/opt/soft/文件夹下. [root@bigdata111 soft]# rz [root@big ...

随机推荐

  1. Eclipse远程调试Java程序

    1. 在服务器上运行jar包时加入参数 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address= 2. 在Eclipse中操作 ...

  2. phpcms修改增加编辑时摘要自动提取的数量

    \caches\caches_model\caches_data\model_field_1.cache.php 搜索 name="introcude_length" value= ...

  3. [持续更新]Python 笔记

    本文以 Python 2.7 为基础. lambda 函数实现递归 方法一:传递一个 self 参数 求阶乘: frac = lambda self, x: self(self, x - 1) * x ...

  4. threejs 画二维圆(圆弧)

    画圆: var radius = 40, segments = 64, material = new THREE.LineBasicMaterial({ color: 0x0000ff }), geo ...

  5. js 值和引用

    js对值和引用的赋值/传递在语法上没有区别,完全根据值得类型决定 简单值(即标量基本类型值),总是通过值复制的方式来赋值/传递,包括null,undefined,字符串,数字,布尔值和ES6中的sym ...

  6. WebStorm的下载与安装

    百度搜索: 链接:http://www.jetbrains.com/webstorm/ 链接:http://www.jetbrains.com/student/ 学生免费授权计划 请从正规来源下载软件 ...

  7. NET Core项目模板

    打造自己的.NET Core项目模板 https://www.cnblogs.com/catcher1994/p/10061470.html 前言 每个人都有自己习惯的项目结构,有人的喜欢在项目里面建 ...

  8. bad ELF interpreter

    安装JDK的时候遇到的问题,  多半是64位的系统安装了32位的软件导致的

  9. BZOJ4547 Hdu5171 小奇的集合

    题意 有一个大小为n的可重集S,小奇每次操作可以加入一个数a+b(a,b均属于S),求k次操作后它可获得的S的和的最大值.(数据保证这个值为非负数) 对于100%的数据,有 n<=10^5,k& ...

  10. hoverfly api 模拟框架了解

    What is Hoverfly? Hoverfly is a lightweight, open source API simulation tool. Using Hoverfly, you ca ...