dubbo+zookeeper伪集群配置

zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待。所以可以通过zookeeper集群解决。

一、为什么需要zookeeper呢?

大部分分布式应用需要一个主控、协调器或者控制器来管理物理分布的子进程。目前,大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器,zookeeper提供通用的分布式锁服务,用以协调分布式应用。所以说zookeeper是分布式应用的协作服务。

二、zookeeper的工作原理

核心原理是原子广播,这个机制保证了各个server之间的同步,实现这个机制的协议叫做Zab协议,它有两种模式:恢复和广播模式。

当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,恢复模式就结束了。

一旦zookeeper内部同步好了后,就可以开始广播信息了,这时候当一个server加入zookeeper服务中,它会在恢复模式下启动,并且同步状态,同步结束后它也参与广播消息。

三、集群搭建准备

1.我用了三个zookeeper服务,分别是zookeeper-1,zookeeper-2,zookeeper-3

2.在每个zookeeper下添加data和log文件

3.配置zoo.cfg文件

 1 # The number of milliseconds of each tick
 2 tickTime=2000
 3 # The number of ticks that the initial
 4 # synchronization phase can take
 5 nitLimit=10
 6 # The number of ticks that can pass between
 7 # sending a request and getting an acknowledgement
 8 syncLimit=5
 9 # the directory where the snapshot is stored.
10 dataDir=E:/zookeeper/zookeeper-1/data
11 # the directory where the log
12 dataLogDir=E:/zookeeper/zookeeper-1/log
13 # the port at which the clients will connect
14 clientPort=2181
15 #Clusters
16 server.1=127.0.0.1:2888:3888
17 server.2=127.0.0.1:2889:3889
18 server.3=127.0.0.1:2890:3890  

每个zookeeper的端口配置都应该不同,分别是2181,2182,2183

4.在data文件添加myid文件,并且里面的内容分别为:1,2,3

5.在dubbo项目中,provider和consumer的xml文件中修改zookeeper的地址,如下:

1 <!-- 本机 伪集群 测试 -->
2 <dubbo:registry  protocol="zookeeper" address="127.0.0.1:2181,27.0.0.1:2182,27.0.0.1:2183"  />  

四、测试

先分别启动zookeeper,然后依次启动服务和客户端。启动服务的时候会看到连接到哪个zookeeper上了。为了测试集群的特性,比如客户端启动后zookeeper-1提供服务,我关掉它,那么程序就继续发起连接,接着可能zookeeper-2提供服务。

因为现在有三台服务器,所以要求至少有2台正常启动才能运行正常。那么zookeeper-2也关闭,那程序不会连接zookeeper-3,一直报错,提示no further connection。

上面说了停掉某个服务,zookeeper内部会选举出下一个leader来,它内部存在投票选举机制。这里不多说了。就像mongodb集群,会根据心跳机制选出主服务器。

接下来的测试,我继续打开zookeeper-1或zookeeper-2,能正常提供服务。把zookeeper-3关闭,如果zookeeper-1和zookeeper-2重新启动成功后,也是能提供服务的。内部在恢复模式下同步状态。

时间: 2024-10-07 07:23:09

dubbo+zookeeper伪集群配置的相关文章

[dubbo实战] dubbo+zookeeper伪集群搭建

zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协调器或者控制器来管理物理分布的子进程.目前,大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形成通用.伸缩性好的协调器,zookeeper提供通用的分布式锁服务,用以协调分布式应用.所以说zookeeper是分布式应用的协作服务. 二.zookeeper的工作原理 核心

1.2 Zookeeper伪集群安装

1.2  Zookeeper伪集群安装 zookeeper单机安装配置可以查看 1.1 zookeeper单机安装 1.复制三份zookeeper,分别为zookeeper-3.4.7-node1,zookeeper-3.4.7-node2,zookeeper-3.4.7-node3 2.修改每个zookeeper文件夹下的配置文件 大部分配置与单机相同,核心为server的配置 server.1=localhost:2887:3887 server.2=localhost:2888:3888

ZooKeeper伪集群环境搭建

1.从官网下载程序包. 2.解压. [[email protected] software]$ tar xzvf zookeeper-3.4.6.tar.gz 3.进入zookeeper目录后创建data目录. [[email protected] software]$ cd zookeeper-3.4.6 [[email protected] software]$ mkdir data [[email protected] software]$ cd data [[email protecte

win10环境下搭建zookeeper伪集群

一.下载zookeeper https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 这里笔者下载的是zookeeper-3.3.6 二.配置zookeeper 1.解压到三个目录 我们想要在单机上搭建3个server的伪集群,需要将下载好的zookeeper压缩包解压到三个目录下.笔者的目录如下: server1 : F:\paths\zookeeper\server1\zookeeper-3.3.6 server2 : F:\paths\z

使用 ZooKeeper 同步集群配置

用 ZooKeeper 同步集群配置,当需要修改所有节点配置时,将配置更新到 ZooKeeper 的一个节点,引起这个节点数据发生变化, 其他所有需要同步配置的节点上的本地 Watcher 会立即发现节点状态的变化,并将最新数据更新到本地 把官方Demo 改了改,响应 Watcher 时用 ConfFileUtil 更新一下本地配置就可以了 [java] view plaincopyprint? public class Executor implements Watcher, Runnable

zookeeper伪集群+dubbo

一.简介 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地 松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提 供方(Provider)和服务消费方(Consumer)两个角色.关于注册中心.协议支持.服务监控等内容. 主要核心部件: * Remoting: 网络通信框架,实现了 sync-over-async 和 r

zookeeper 的安装和伪集群配置

zookeeper的安装 tar -zxvf  zookeeper-3.4.8.tar.gz mv zookeeper-3.4.8 /usr/local/ 修改zk的配置文件 cp zoo_sample.cfg zoo.cfg tickTime: zookeeper中使用的基本时间单位, 毫秒值. dataDir: 数据目录. 可以是任意目录. dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置. clientPort: 监听cli

zookeeper伪集群搭建

下载地址:http://mirror.bit.edu.cn/apache/zookeeper/ yum install telnet -y -y 不再提示 全部选择yes 1.解压三个zk文件夹分别为 zk8081 zk80822.zk2181: mkdir data mkdir logs touch /daata/myid 写入1zk2182: mkdir data mkdir logs touch /daata/myid 写入2zk2183: mkdir data mkdir logs to

zookeeper 伪集群模式安装

伪集群, 是指在单台机器中启动多个zookeeper进程, 并组成一个集群. 以启动3个zookeeper进程为例 1.找到zk目录,复制两份 cp -r zk zk2 cp -r zk zk3 2.分别修改配置文件zoo.cfg dataDir=/opt/zk/zk/data dataLogDir=/opt/zk/zk/logs server.0=127.0.0.1:5555:6666 server.1=127.0.0.1:5556:6667 server.2=127.0.0.1:5557:6