zoukankan      html  css  js  c++  java
  • 【分布式】Zookeeper伪集群安装部署

    创建三个目录,隔离开3个zookeeper实例的数据文件,配置文件:

    [beanlam@localhost ~]$ mkdir zk1
    [beanlam@localhost ~]$ mkdir zk2
    [beanlam@localhost ~]$ mkdir zk3

    然后,再分别为每个目录创建一个数据目录,用来存放数据以及id文件

    [beanlam@localhost ~]$ mkdir zk1/data
    [beanlam@localhost ~]$ mkdir zk2/data
    [beanlam@localhost ~]$ mkdir zk3/data

    指定id

    zookeeper启动的时候,会在它的数据目录下寻找id文件,以便知道它自己在集群中的编号。

    [beanlam@localhost ~]$ echo 1 > zk1/data/myid
    [beanlam@localhost ~]$ echo 2 > zk2/data/myid
    [beanlam@localhost ~]$ echo 3 > zk3/data/myid

    修改配置文件

    这3个实例,每个实例都会使用不同的配置文件启动。
    配置示例如下:

    # The number of milliseconds of each tick
    tickTime=2000
    
    # The number of ticks that the initial
    # synchronization phase can take
    initLimit=10
    
    # The number of ticks that can pass between
    # sending a request and getting an acknowledgement
    syncLimit=5
    
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just
    # example sakes.
    dataDir=/home/beanlam/zk1/data
    
    # the port at which the clients will connect
    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

    这是第一个实例的配置,z1.cfg。把这份配置文件放置在zk1/目录下。
    同理,第二个和第三个实例的配置分别为z2.cfg和z3.cfg。和第一个实例一样,放在相同的位置。
    唯一不同的是,clientPort必须修改一下,z1.cfg为2181,z2.cfg和z3.cfg不能也是2181,必须彼此不同,比如2182或者2183。

    配置文件最底下有一个server.n的配置项,这里配置了两个端口,却一种第一个用于集群间实例的通信,第二个用于leader选举。
    至于2181,用于监听客户端的连接。

    启动和连接

    按照以下方式,依次启动3个实例:

    [beanlam@localhost ~]$ cd zk1
    [beanlam@localhost zk1]$ ~/zookeeper-3.4.8/bin/zkServer.sh start-foreground ./z1.cfg

    启动第一个和第二个实例的时候会有报错信息,因为其它实例还没启动完全,连接无法建立的原因,可以直接忽略。
    启动完3个实例后,会发现其中有一个是leader,另外两个是follower。可观察输出信息。

    接下来启动一个客户端去进行连接:

    [beanlam@localhost ~]$ ~/zookeeper-3.4.8/bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    可以看到,客户端连接上了刚才启动的三个实例中的其中一个。

  • 相关阅读:
    MyBatis学习总结_01_MyBatis快速入门
    PHP 真正多线程的使用
    PHP Ajax 跨域问题最佳解决方案
    阿里内贸团队敏捷实践-敏捷回顾
    Linux系统下如何禁止ping命令或允许ping命令的方法
    分享常见的几种页面静态化的方法
    Spring-Boot初始篇
    在CentOS下面编译WizNote Qt Project
    CentOS 7快速搭建Nodejs开发环境
    大数据 Hive 简介
  • 原文地址:https://www.cnblogs.com/liuwenlin/p/10176149.html
Copyright © 2011-2022 走看看