CentOS7.X安装zookeeper-3.4.11

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: CentOS7.X安装zookeeper-3.4.11

我的个人网站

zookeeper

  1. 安装前的准备

    yum install \
    vim \
    gcc \
    gcc-c++ \
    wget \
    make \
    automake \
    autoconf \
    -y \
  2. 检查是否安装JDK

    rpm -qa|grep -E '^open[jre|jdk]|j[re|dk]'
  3. 卸载已安装JDK

    rpm -qa|grep java|xargs rpm -e --nodeps
  4. yum安装jdk

    yum search java|grep jdk
    yum install java-1.8.0-openjdk
  5. 检查安装是否成功

    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)
  6. 下载并安装

    cd /root
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.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
  7. 修改配置

    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=192.168.0.123:2182:2183
    # server.2=192.168.0.123:2182:2183
    # server.3=192.168.0.123:2182:2183
    maxClientCnxns=60
    minSessionTimeout=60
    maxSessionTimeout=120
    # purgeInterval含义: 0-禁用自动清除 1-使用自动清除
    autopurge.purgeInterval=1
    
    ESC
    :wq
  8. 安装zookeeper-c

    cd /usr/local/zookeeper/src/c
    
    ./configure
    
    make
    make install
  9. 防火墙开启

    systemctl enable firewalld
    systemctl start firewalld
    firewall-cmd --zone=public --permanent --add-port=2181/tcp
    firewall-cmd --reload
  10. 单元文件

    # 进入单元文件目录
    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
  11. 安装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
  12. 安装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
  13. 修改php.ini

    vim /usr/local/php/lib/php.ini
    
    extension=libzookeeper.so
    extension=zookeeper.so
    
    ESC
    :wq
  14. 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',
            ]
        ];
        //尝试创建节点
        //EPHEMERAL: 临时节点
        //EPHEMERAL_SEQUENTIAL: 临时顺序节点
        //PERSISTENT: 持久节点(暂时别用)
        //PERSISTENT_SEQUENTIAL: 持久顺序节点(暂时别用)
        $zookeeper_key_res = $zc->create($zookeeper_key, '这是节点的值', $acl, \Zookeeper::EPHEMERAL);//临时节点(可共享的)
        if ($zookeeper_key_res == $zookeeper_key) {
            //创建节点成功运行程序
            //做些什么,比如等待10秒
            sleep(10);
            //可以尝试取节点的值
            //$zookeeper_val = $zc->get($zookeeper_key);
            //echo $zookeeper_val;
            $zc->delete($zookeeper_key);//其实不执行也会删除,因为这是一个临时节点,且return之后不再能取到$zc
            return true;
        } else {
            //创建节点失败不运行程序
            return false;
        }
    }
相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
107 64
|
2月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
116 61
|
17天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
18天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
92 1
Linux系统之Centos7安装cockpit图形管理界面
|
2月前
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
58 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
25天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
70 3
|
26天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
46 2
|
2月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
132 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
28天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
83 2