dubbo zookeeper 的搭建

zookeeper集群只要有超过一半的节点正常就可以运行,所以集群节点的数量应该为奇数,即:使用2n+1个节点来运行zookeeper集群。下面使用3台机器部署zookeeper节点。

1.安装虚拟机配置静态上网ip

    如果配置的DHCP 自动获取网络 则虚拟机在每一次重启的时候 都会改变IP.需要配置静态IP,这样虚拟机的IP就固定了。

  1.1  桥接模式之VMware设置:

    

 

1.2  桥接模式之虚拟机设置:

 

 

 

1.3  桥接模式之设置静态ip地址

配置成桥接网络连接模式的虚拟机就当作主机所在以太网的一部分,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑,可以像主机一样可以访问以太网中的所有共享资源和网络连接,可以直接共享主机网络的互联网接入线路访问互联网。主机与虚拟机之间,以及各虚拟机之间都可以互访。对应虚拟机就被当成主机所在以太网上的一个独立物理机来看待,各虚拟机通过默认的VMnet0网卡与主机以太网连接,虚拟机间的虚拟网络为VMnet0。这时你的虚拟机就像局域网中的一个独立的物理机一样。虚拟机中的操作系统可以PING通别的主机,反过来别的主机也可以PING虚拟机。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。

所以配置之前,我要先看一下物理主机的ip地址:(我这里物理主机采用无线上网卡wifi上网)

1.4   ipconfig  查看物理主机的ip地址(上外网用的那个网卡的ip地址)

1.5 根据物理主机的ip地址,设置linux虚拟机的ip地址:

 

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0        #虚拟机网卡名称。
TYPE=Ethernet
ONBOOT=yes        #开机启用网络配置。
NM_CONTROLLED=yes
BOOTPROTO=static      #static,静态ip,而不是dhcp,自动获取ip地址。
IPADDR=192.168.1.101  #设置我想用的静态ip地址,要和物理主机在同一网段,但又不能相同。
NETMASK=255.255.255.0  #子网掩码,和物理主机一样就可以了。
GETWAY=192.168.1.1   #和物理主机一样
DNS1=8.8.8.8      #DNS,写谷歌的地址就可以了。
HWADDR=00:0c:29:22:05:4c
IPV6INIT=no
USERCTL=no


1.6 重启网络服务
service network  restart
可以参看 url = https://www.cnblogs.com/jasmine-Jobs/p/5928218.html

2.修改hosts文件

## 修改hosts文件,添加节点的映射
vi /etc/hosts

## hosts的内容如下
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

#zookeeper cluster servers (zookeeper的节点IP映射)
192.168.1.101 server01
192.168.1.105 server02
192.168.1.108 server03

3.解压zookeeper

wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz 
tar zxvf zookeeper-3.4.8.tar.gz
 

  解压zookeeper到目录中,在这次设置中三天机器的zookeeper目录分别为:

  • 机器192.168.1.101,目录名是 zookeeper-3.4.8;
  • 机器192.168.1.105,目录名是 zookeeper-3.4.8;
  • 机器192.168.1.108,目录名是 zookeeper-3.4.8;
  • 4  创建data与logs文件夹

  • ## 创建data mkdir /usr/local/src/zookeeper/data  
  • ## 创建logs mkdir /usr/local/src/zookeeper/logs
  • 5.修改zoo.cfg配置文件

        分别从三台机器zk-node-xx\conf目录,拷贝zoo_sample.cfg文件,并且重命名为zoo.cfg:

    ## 复制文件
    cp zoo_sample.cfg zoo.cfg
  • 接着,分别修改这三台机器的zoo.cfg,修改内容如下:

    ## 192.168.1.101的zoo.cfg内容
    
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/usr/local/src/zookeeper/data
    dataLogDir=/usr/local/src/zookeeper/logs
    clientPort=2181
    server.1=server01:2888:3888
    server.2=server02:2888:3888
    server.3=server03:2888:3888
  其中dataDir与dataLogDir的目录分别对应上面创建的两个文件夹,server.1、server.2、server.3分别对应三台机器,机器192.168.1.101,192.168.1.105,192.168.1.108的端口为2181。

配置文件参数说明:

tickTime=2000

tickTime这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳。

initLimit=10

initLimit这个配置项是用来配置Zookeeper接受客户端(这里所说的客户端不是用户连接Zookeeper服务器的客户端,而是Zookeeper服务器集群中连接到Leader的Follower服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过10个心跳的时间(也就是tickTime)长后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是10*2000=20秒。

syncLimit=5

syncLimit这个配置项标识Leader与Follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。

dataDir=/opt/zk-node-01/data

顾名思义就是Zookeeper保存数据的目录,默认情况下Zookeeper将写数据的日志文件也保存在这个目录里。

clientPort=2181

clientPort这个端口就是客户端(应用程序)连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求。

server.A=B:C:D

server.1=server01:2888:3888

server.2=server02:2888:3888

server.3=server03:2888:3888

A是一个数字,表示这个是第几号服务器;

B是这个服务器的IP地址(或者是与IP地址做了映射的主机名);

C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的Leader服务器交换信息的端口;

D是在leader挂掉时专门用来进行选举leader所用的端口。

注意:如果是伪集群的配置方式,不同的Zookeeper实例通信端口号不能一样,所以要给它们分配不同的端口号。

6.在data目录创建myid文件

 在

/usr/local/src/zookeeper/data 目录下创建一个myid文件,三台机器的myid内容分别为1、2和3:

## 创建myid文件
vi myid

## 输入内容
1

7.配置防火墙

1) 重启后生效 
开启: chkconfig iptables on
关闭: chkconfig iptables off

2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

8.开启zookeeper服务

    服务在zookeeper-3.4.8\bin下,有一个zkServer.sh文件,分别对三台机器执行:

## 开启zookeeper服务
zkServer.sh start

## 查看zookeeper状态
zkServer.sh status
10.

9.使用dubbo测试zookeeper集群

 

posted @ 2017-11-19 15:21  烟尘  阅读(564)  评论(0编辑  收藏  举报