php安装zookeeper
zookeeper是非常著名的分布式开源软件,在选主、配置管理、分布式锁等应用方面表现出色。那么在php环境下如何使用zookeeper呢?
zookeeper源码版本 | zookeeper扩展版本 |
---|---|
3.4.10 | 0.4.0 |
1.安装zookeeper Lib
首先需要下载zookeeper的源码进行编译安装,源码下载地址为为zookeeper源码
1 | # tar -xzf zookeeper-3.4.10.tar.gz |
2.下载zookeeper扩展
官方下载地址:zookeeper扩展
1 | # tar xzf zookeeper-0.4.0.tgz |
如果phpize执行不下去,会提示安装php-devel,直接an’z
如果提示php-config错误,那么执行./configure的时候还需要指定-with-php-config(该值为你的php-config路径)
在php.ini的末尾增加
1 | extension=zookeeper.so |
然后执行
1 | php -m | grep zookeeper |
就可以看到扩展安装完成了。
3. 搭建集群
理论上集群的机器的个数为N(N为奇数且大于等于3,之所以需要奇数是因为需要多数派),下面我们有三台机器
机器名称 | 机器IP |
---|---|
A | 101.101.101.1 |
B | 101.101.101.2 |
C | 101.101.101.3 |
3.1 复制配置文件
在A机器上面执行
1 | cp /usr/local/zookeeper-3.4.10/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.10/conf/zoo.cfg |
3.2 编辑配置文件
然后编辑zoo.cfg如下
1 | # The number of milliseconds of each tick |
3.3 创建节点ID
创建文件/home/idonkeyliu/zoo/myid
,/home/idonkeyliu/zoo
目录为配置文件中的dataDir
然后将节点ID: 0写入到文件中。A机器的myid为0,B机器为1,C机器为2.与配置文件里面的server.X中的X一致。
3.4 拷贝配置文件与节点ID文件到其它机器
直接拷贝文件到B机器与C机器。
3.5 启动zookeeper
在A, B, C三台机器下面执行
1 | /usr/local/zookeeper-3.4.10/bin]# ./zkServer.sh start |
执行后看到如下提示表示启动成功
1 | ZooKeeper JMX enabled by default |
3.6 依次查看节点的状态
在A机器执行
1 | /usr/local/zookeeper-3.4.10/bin]# ./zkServer.sh status |
会显示
1 | ZooKeeper JMX enabled by default |
表示A机器为zookeeper机器的主节点
在B与C机器执行
1 | /usr/local/zookeeper-3.4.10/bin]# ./zkServer.sh status |
会显示
1 | ZooKeeper JMX enabled by default |
表示B、C机器为zookeeper集群的从节点
4 zookeeper命令
ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。ZooKeeper常用四字命令见下表所示:
命令 | 作用 |
---|---|
conf | 输出相关服务配置的详细信息 |
cons | 列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息 |
dump | 列出未经处理的会话和临时节点 |
envi | 输出关于服务环境的详细信息(区别于 conf 命令) |
reqs | 列出未经处理的请求 |
ruok | 测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应 |
stat | 输出关于性能和连接的客户端的列表 |
wchs | 列出服务器 watch 的详细信息 |
wchc | 通过 session 列出服务器 watch 的详细信息,它的输出是一个与watch 相关的会话的列表 |
wchp | 通过路径列出服务器 watch 的详细信息。它输出一个与 session相关的路径 |
下面演示一下ruok命令
1 | /usr/local/zookeeper-3.4.10/bin]# echo ruok | nc localhost 2181 |
然后会显示
1 | imok |
表示该节点处于正确状态。
如果nc命令执行不了,就执行yum install nmap-ncat
安装
5 php脚本连接zookeeper
1 |
|