zookeeper基本安装文档
zookeeper
-
检查是否安装JDK
rpm -qa|grep -E '^open[jre|jdk]|j[re|dk]'
-
卸载已安装JDK
rpm -qa|grep Java|xargs rpm -e --nodeps
-
yum安装jdk
yum search java|grep jdk yum install java-1.8.0-openjdk
-
检查安装是否成功
java -version java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
-
下载并安装
cd /root wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz tar -xvf zookeeper-3.4.11.tar.gz mv ./zookeeper-3.4.11 /usr/local/zookeeper mkdir /usr/local/zookeeper/var mkdir /usr/local/zookeeper/var/log echo 1 > /usr/local/zookeeper/var/log/myid cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
-
修改配置
vim /usr/local/zookeeper/conf/zoo.cfg tickTime=2000 initLimit=5 syncLimit=2 dataDir=/usr/local/zookeeper/var/log dataLogDir=/usr/local/zookeeper/var/log clientPort=2181 # 多台server在下面配置即可,如果单台服务器构建多个server,则每个server用过的端口不能重复使用 # 格式: server.[n]=[server_ip]:[server与leader交互端口]:[server选举leader端口] # server.1=172.31.9.59:2182:2183 # server.2=172.31.9.60:2182:2183 # server.3=172.31.9.61:2182:2183 maxClientCnxns=60 minSessionTimeout=60 maxSessionTimeout=120 # purgeInterval含义: 0-禁用自动清除 1-使用自动清除 autopurge.purgeInterval=1 ESC :wq
-
安装zookeeper-c
cd /usr/local/zookeeper/src/c ./configure make make install
-
防火墙开启
systemctl enable firewalld systemctl start firewalld firewall-cmd --zone=public --permanent --add-port=2181/tcp firewall-cmd --zone=public --permanent --add-port=2182/tcp firewall-cmd --zone=public --permanent --add-port=2183/tcp firewall-cmd --reload
-
单元文件
# 进入单元文件目录 cd /etc/systemd/system # 创建redis单元文件,格式为: [单元文件名].[单元文件类型] vim zookeeper.service [Unit] Description=开机启动zookeeper. After=default.target network.target [Service] User=root Group=root Type=forking PIDFile=/usr/local/zookeeper/var/log/zookeeper_server.pid ExecStart=/usr/local/zookeeper/bin/zkServer.sh start ExecReload=/usr/local/zookeeper/bin/zkServer.sh restart ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop PrivateTmp=false Restart=always [Install] WantedBy=multi-user.target ESC :wq
-
安装php扩展:zookeeper参考链接
cd /root wget https://pecl.php.net/get/zookeeper-0.4.0.tgz tar -zxvf zookeeper-0.4.0.tgz cd zookeeper-0.4.0/ phpize ./configure make make install
-
安装php扩展libzookeeper参考链接
cd /root wget https://github.com/Timandes/libzookeeper/archive/v0.7.2.tar.gz tar -xvf v0.7.2.tar.gz cd libzookeeper-0.7.2 phpize ./configure make make install # 用来调起zookeeper-admin,仓库地址: https://github.com/Timandes/zookeeper-admin.git
-
修改php.ini
vim /usr/local/php/lib/php.ini extension=libzookeeper.so extension=zookeeper.so ESC :wq
-
PHP使用进程公共锁
# 出了$zc的作用域之后,锁将不存在 $zc = new \Zookeeper('127.0.0.1:2181'); //或者 //$zc = new \Zookeeper(); //$zc->connect('127.0.0.1:2181'); $zookeeper_key = '/xxx'; if ($zc->exists($zookeeper_key)) { //如果锁存在,则程序正在运行,不运行新的程序 return false; }else{ //如果锁文件不存在,则创建进程锁文件,运行程序 $acl = [ [ 'perms' => \Zookeeper::PERM_ALL,//共享锁(用来跨进程执行某个程序) 'scheme' => 'world', 'id' => 'anyone', ] ]; //尝试创建锁 $zookeeper_key_res = $zc->create($zookeeper_key, null, $acl, \Zookeeper::EPHEMERAL);//临时锁(可共享的) if ($zookeeper_key_res == $zookeeper_key) { //创建锁成功运行程序 //做些什么,比如等待10秒 sleep(10); $zc->delete($zookeeper_key);//其实不执行也会删除,因为这是一个临时锁,且return之后不再能取到$zc return true; } else { //创建锁失败不运行程序 return false; } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用 dlv 调试go 程序
目录 使用 dlv 调试smartraiden 一 正常启动 smartraiden 二 dlv 调试 三 dlv attach 使用 dlv 调试smartraiden by 白振轩 使用 dlv 调试smartraiden 一 正常启动 smartraiden 二 dlv 调试 三 dlv attach goroutines -s 查看所有 goroutine 的栈 解决问题 对于程序运行过程中碰到的莫名其妙的问题,比如不明原因的阻塞,命令行 dlv 调试可能比 ide 调试效果更好 一 正常启动 smartraiden ./smartraiden --datadir=.smartraiden --api-address=0.0.0.0:5001 --listen-address=127.0.0.1:40001 --address="0x292650fee408320D888e06ed89D938294Ea42f99" --keystore-path ~/privnet3/keystore --registry-contract-address 0xf450955d87F23DF5...
- 下一篇
重磅!新高考将编程纳入必学科目!这个省最先试行
国务院发布的《新一代人工智能发展规划》,预示着人工智能已经进入到我们生活当中,编程也会进入教育领域中的重要规方向。 作为试点,2017年浙江省发布《浙江省深化高校考试招生制度综合改革试点方案》,该方案中就明确规定:明确将信息技术学科(含编程)纳入高中生的必学科目。 浙江高考模式是语数英+三门选考,信息技术就是其中一门,每项各占50分。2018年浙江省高考改革方案从“模式是语数英+三门选考改”为“6+1选3”,其中的+1就是信息技术(含编程),成为必考科目。 编程是互联网、人工智能等高新技术的基础和核心,而当下,正是计算机编程普及的风口浪尖,谁能抢先一步抓住这个风口,就会在未来的计算机时代占有主动地位。现在编程教育正在逐渐普及,学习编程对孩子的成长有着重要意义。 “编程促进你的思维能力” “我认为这个国家的每个人都应该学习编程,因为它会教给你如何思考。” “我们在教育领域的最大发展机遇之一就是教更多的孩子学会编程。” “编程关乎美国的未来……我们需要孩子们熟练地掌握这些技术。” “学习编程要比学习英语更重要。因为编程语言可以影响全球70亿人。” 上述五句话分别来自于微软的比尔·盖茨、苹果...
相关文章
文章评论
共有0条评论来说两句吧...