首页 > 其他分享 >ZooKeeper集群搭建

ZooKeeper集群搭建

时间:2023-09-24 19:22:58浏览次数:36  
标签:zookeeper 18 ZooKeeper 2181 27 集群 myid leader 搭建

ZooKeeper 是一个分布式服务框架,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:命名服务、状态同步、配置中心、集群管理等。

消费者模型

0 生产者启动
1 生产者注册至 zookeeper(生产者的代码启动)
2 消费者启动并订阅频道(消费者往那个频道注册的就会到那个频道去找,频道都是写死的)
3 zookeeper 通知消费者事件(如果生产者的地址有变化或者挂了都会通知消费者)
4 消费者调用生产者(消费者根据注册中心返回的地址去调用生产者,此时消费者就可以直接访问生产者了)
5 监控中心负责统计和监控服务状态(监控服务是否正常)

集群角色

集群有leader主节点和follower的角色,数据写入比较特殊,为了保证数据的一致性,zookeeper也是复制式的集群,数据写的操作只能在leader写入,数据写入到leader也会同步到follower,如果写入是在follower的话,follower会把请求转发给leader,leader写完再同步
到别的follower节点上,这个时候别的follower服务器就拥有和leader相同的数据了,然后客户端就可以到follower读取数据就可以了

领导者
1.事务请求的唯一调度和策略者,从而保证集群事务(事务就是写入数据)处理的顺序性,按照请求的顺序去写数据
2.集群内部各服务器的调度者,这个调度就是就是写数据区处理写操作在把数据同步给其他的follower服务器,这个数据是由leader去管理的
3.一个集群只要一个leader,如果有2个leader的话,可能一部分写入到节点1和节点2的follower,一部分数据写入到节点1和节点3的follower这个数据就乱套了,服务器挂了以后数据会丢失,为了保证数据的一致性只能一个服务器可以写就是leader写完之后再往别的服务器同步,2个leader就是脑裂会导致数据不一致

跟随者(Follower),
1.处理客户端的非事务请求(处理写请求),转发事务(事务就写入数据)请求给leader服务器,转发写请求给leader,在zookeeper集群当中follower一定知道谁是leader
2.参与事务请求Proposal的投票就是进行leader选举,包括初始化集群的时候进行投票选举出leader
3.参与leader选举的投票

观察者:follower和observer的唯一区别在于observe的机器不参与leader的选举过程,observer也可以处理客户读请求,也不参与写操作的过半写成功策略(过半写成功),因此observe机器可以在不影响写性能的情况下提升集群的读性能。
写成功策略:过半写成功,客户端发起写请求的话,为快速响应客户端,leader写入数据以后同步数据到follower,此时有一半的服务器加上leader同步数据成功就响应客户,就响应客户写入成功,避免客户等待响应时间过长就是写成功策略

客户端:请求的发起方,就是app应用程序

 

配置说明

# grep -v "^#" /usr/local/zookeeper/conf/zoo.cfg #配置文件内容
tickTime=2000 #服务器与服务器之间的单次心跳检测时间间隔,单位为毫秒
initLimit=10 #集群中 leader 服务器与 follower 服务器初始连接心跳次数,即多少个 2000 毫秒
syncLimit=5 # leader 与 follower 之间连接完成之后,后期检测发送和应答的心跳次数,如果该 follower 在设置的时间内(5*2000)不能与leader 进行通信,那么此follower 将被视为不可用。
dataDir=/usr/local/zookeeper/data #自定义的 zookeeper 保存数据的目录
clientPort=2181 #客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
maxClientCnxns=128 #单个客户端 IP 可以和 zookeeper 保持的连接数
autopurge.snapRetainCount=3 #3.4.0 中的新增功能:启用后,ZooKeeper 自动清除功能会将 autopurge.snapRetainCount 最新快照和相应的事务日志分别保留在dataDir 和 dataLogDir 中,并删除其余部分,默认值为3。最小值为3。
autopurge.purgeInterval=1 # 3.4.0 及之后版本,ZK 提供了自动清理日志和快照文件的功能,这个参数指定了清理频率,单位是小时,需要配置一个1 或更大的整数,默认是 0,表示不开启自动清理功能

#集群配置
2888:leader和follower数据同步端口,只要在leader开启,follower会链接此2888端口同步数据
3888:选举端口和通告使用,leader和follower开启此端口
2181:是客户端的端口,leader和follower开启此端口
server.1=172.18.0.101:2888:3888 # server.服务器编号=服务器IP(这里ip在k8s环境写名称需要codedns支持名称解析):LF 数据同步端口:LF 选举端口
server.2=172.18.0.102:2888:3888
server.3=172.18.0.103:2888:3888

集群选举


#选举过程当中集群任何服务器节点都可以处于下面的角色状态,第一种LOOKING处于寻找Leader状态,集群在没有初始化的时候会短暂的处于LOOKING状态,寻找leader,LOOKING状态很短暂,一旦选出leader之后他们就会自动转换他们的角色,最终选出leader之后,处于LEADING领导者状态服务器就是leader角色,参与FOLLOWING跟随者状态的服务器就是follower,zookeeper选举是根据配置文件的server配置的地址和myid进行选举的


LOOKING:寻找 Leader 状态,处于LOOKING状态需要进入通告进入选举流程,集群初始化也服务器也会处于LOOKING状态,一旦选出leader之后就会自动转换角色
LEADING:领导者状态,处于该状态的节点说明是角色已经是Leader,一个集群只有一个leader
FOLLOWING:跟随者状态,表示 Leader 已经选举出来,当前节点角色是follower只处理读请求,写转发给leader
OBSERVER:观察者状态,表明当前节点角色是 observer,不参与投票和选举此角色使用的很少

选举id

ZXID(zookeeper transaction id):每个改变 Zookeeper 状态的操作都会形成一个对应的 zxid,事务id。
myid:服务器的唯一标识(SID),通过配置 myid 文件指定,集群中唯一。

选举过程当leader挂了或者是集群初始化,所有服务器都会处于短暂的LOOKING处于寻找Leader状态,然后在集群进行通告myid和zxid,在zookeeper集群初始化的时候,第一次没有任何数据的时候myid高的节点会选举为leader,myid是集群服务器的唯一标识,在后期zookeeper集群有数据的时候,就会跟zxid来进行选举zxid是事务id,事务id越新就是数据越齐全,那个节点的zxid最新那个节点就会被选举为leader,选举出服务器以后,此时处于LEADING状态的服务器就是leader,处于FOLLOWING状态的服务器就是follower,选举就完成了

集群搭建

#修改主机名称
hostnamectl set-hostname zk1
hostnamectl set-hostname zk2
hostnamectl set-hostname zk3

#安装openjdk8
apt update
apt install -y openjdk-8-jdk 
#检查jdk
root@zk1:~# java -version
openjdk version "1.8.0_382"
OpenJDK Runtime Environment (build 1.8.0_382-8u382-ga-1~20.04.1-b05)
OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)


#上传安装包3个节点解压安装包
tar -xf apache-zookeeper-3.6.3-bin.tar.gz

#修改配置文件
root@zk1:/tools/apache-zookeeper-3.6.3-bin# cp -a /tools/apache-zookeeper-3.6.3-bin/conf/zoo_sample.cfg /tools/apache-zookeeper-3.6.3-bin/conf/zoo.cfg
#配置文件说明
root@zk1:/tools/apache-zookeeper-3.6.3-bin# cat /tools/apache-zookeeper-3.6.3-bin/conf/zoo.cfg
tickTime=2000 #服务器与服务器之间的单次心跳检测时间间隔,单位为毫秒
initLimit=10 #集群中 leader 服务器与 follower 服务器初始连接心跳次数,即多少个 2000 毫秒
syncLimit=5 #leader 与 follower 之间连接完成之后,后期检测发送和应答的心跳次数,如果该 follower 在设置的时间内(5*2000)不能与leader 进行通信,那么此follower 将被视为不可用。
dataDir=/tmp/zookeeper #数据保存的目录
clientPort=2181 #客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
maxClientCnxns=128 #单个客户端 IP 可以和 zookeeper 保持的连接数
#autopurge.snapRetainCount=3 #3.4.0 中的新增功能:启用后,ZooKeeper 自动清除功能会将 autopurge.snapRetainCount 最新快照和相应的事务日志分别保留在dataDir 和 dataLogDir 中,并删除其余部分,默认值为3。最小值为3。
#autopurge.purgeInterval=1#3.4.0 及之后版本,ZK 提供了自动清理日志和快照文件的功能,这个参数指定了清理频率,单位是小时,需要配置一个1 或更大的整数,默认是 0,表示不开启自动清理功能
#集群配置
2888:leader和follower数据同步端口,只要在leader开启,follower会链接此2888端口同步数据
3888:选举端口和通告使用,leader和follower开启此端口
2181:是客户端的端口,leader和follower开启此端口
server.1=172.18.0.101:2888:3888 # server.服务器编号=服务器IP(这里ip在k8s环境写名称需要codedns支持名称解析):LF 数据同步端口:LF 选举端口
server.2=172.18.0.102:2888:3888
server.3=172.18.0.103:2888:3888

#创建数据目录
#在数据目录创建myid,zookeeper在启动的过程中会在数据目录加载myid并且作为自己的myid,myid越大初始化的时候myid最大的会被选举为leader,myid在选举的使用
mkdir -p /usr/local/zookeeper/data

#配置myid
# echo "1" > /usr/local/zookeeper/data/myid #自己的集群id
root@zk1:/tools/apache-zookeeper-3.6.3-bin# echo "1" > /usr/local/zookeeper/data/myid
root@zk2:/tools# echo "2" > /usr/local/zookeeper/data/myid
root@zk3:/tools# echo "3" > /usr/local/zookeeper/data/myid

#3台服务器修改配置文件
cat >/tools/apache-zookeeper-3.6.3-bin/conf/zoo.cfg<<'EOF'
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
clientPort=2181
maxClientCnxns=4096
autopurge.snapRetainCount=128
autopurge.purgeInterval=1

server.1=10.0.0.70:2888:3888
server.2=10.0.0.72:2888:3888
server.3=10.0.0.73:2888:3888
EOF

#集群启动
cd /tools/apache-zookeeper-3.6.3-bin/bin/ && ./zkServer.sh start
root@zk1:~# cd /tools/apache-zookeeper-3.6.3-bin/bin/ && ./zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /tools/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@zk2:~# cd /tools/apache-zookeeper-3.6.3-bin/bin/ && ./zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /tools/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@zk3:~# cd /tools/apache-zookeeper-3.6.3-bin/bin/ && ./zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /tools/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

#查看启动日志
root@zk1:/tools/apache-zookeeper-3.6.3-bin/bin# tail -f /tools/apache-zookeeper-3.6.3-bin/logs/zookeeper*
==> /tools/apache-zookeeper-3.6.3-bin/logs/zookeeper_audit.log <==

==> /tools/apache-zookeeper-3.6.3-bin/logs/zookeeper-root-server-zk1.out <==
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:607)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:383)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:457)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
2023-09-23 18:27:44,446 [myid:1] - INFO  [ListenerHandler-/10.0.0.70:3888:QuorumCnxManager$Listener$ListenerHandler@1070] - Received connection request from /10.0.0.73:13975
2023-09-23 18:27:44,449 [myid:1] - INFO  [WorkerReceiver[myid=1]:FastLeaderElection$Messenger$WorkerReceiver@389] - Notification: my state:FOLLOWING; n.sid:3, n.state:LOOKING, n.leader:3, n.round:0x1, n.peerEpoch
:0x0, n.zxid:0x0, message format version:0x2, n.config version:0x0 #检查端口2181 root@zk1:/tools/apache-zookeeper-3.6.3-bin/bin# lsof -i:2181 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 69305 root 65u IPv6 176392 0t0 TCP *:2181 (LISTEN) root@zk2:/tools/apache-zookeeper-3.6.3-bin/bin# lsof -i:2181 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 34641 root 65u IPv6 124106 0t0 TCP *:2181 (LISTEN) root@zk3:/tools/apache-zookeeper-3.6.3-bin/bin# lsof -i:2181 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 34940 root 65u IPv6 126251 0t0 TCP *:2181 (LISTEN) #查看集群节点状态,启动集群,启动要快 #查看集群状态 root@zk3:/tools/apache-zookeeper-3.6.3-bin/bin# ./zkServer.sh status /usr/bin/java ZooKeeper JMX enabled by default Using config: /tools/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: follower root@zk2:/tools/apache-zookeeper-3.6.3-bin/bin# ./zkServer.sh status /usr/bin/java ZooKeeper JMX enabled by default Using config: /tools/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: leader root@zk1:/tools/apache-zookeeper-3.6.3-bin/bin# ./zkServer.sh status /usr/bin/java ZooKeeper JMX enabled by default Using config: /tools/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: follower #任意节点使用客户端命令链接zk ls查看当前路径/ create创建什么数据 delete删除数据 get查看数据 set修改数据 一般情况下数据都是由应用程序往里面写的 root@zk1:/tools/apache-zookeeper-3.6.3-bin/bin# ./zkCli.sh /usr/bin/java Connecting to localhost:2181 #查看根目录 [zk: localhost:2181(CONNECTED) 1] ls / [zookeeper] #创建数据,类似生产者注册相当于是注册了10.0.0.100的服务器 [zk: localhost:2181(CONNECTED) 2] create /host1 "10.0.0.70" Created /host1 #zookeeper默认是树形结构 #查看根的数据 [zk: localhost:2181(CONNECTED) 5] ls / [host1, zookeeper] [zk: localhost:2181(CONNECTED) 6] ls /host1 [] #get类似消费者获取服务器地址 [zk: localhost:2181(CONNECTED) 7] get /host1 10.0.0.70 #删除host1的数据 [zk: localhost:2181(CONNECTED) 8] delete /host1 #检查 [zk: localhost:2181(CONNECTED) 9] get /host1 Node does not exist: /host1 [zk: localhost:2181(CONNECTED) 10] ls /host1 Node does not exist: /host1 [zk: localhost:2181(CONNECTED) 11] ls / [zookeeper] ##需要先创建父目录在创建子目录,应用程序可以递归创建 #创建父目录 [zk: localhost:2181(CONNECTED) 12] create /wbiao Created /wbiao #创建host1 [zk: localhost:2181(CONNECTED) 15] create /wbiao/host1 "10.0.0.100" Created /wbiao/host1 #创建host2 [zk: localhost:2181(CONNECTED) 18] create /wbiao/host2 "10.0.0.102" Created /wbiao/host2 #查看目录 [zk: localhost:2181(CONNECTED) 19] ls / [wbiao, zookeeper] [zk: localhost:2181(CONNECTED) 20] ls /wbiao [host1, host2] [zk: localhost:2181(CONNECTED) 21] ls /wbiao/host1 [] [zk: localhost:2181(CONNECTED) 22] ls /wbiao/host2 [] #查看数据 [zk: localhost:2181(CONNECTED) 23] get /wbiao/host1 10.0.0.100 [zk: localhost:2181(CONNECTED) 24] get /wbiao/host2 10.0.0.102 #删除需要先删除父目录的子目录,在删除父目录 [zk: localhost:2181(CONNECTED) 25] delete /wbiao/host1 [zk: localhost:2181(CONNECTED) 26] delete /wbiao/host2 [zk: localhost:2181(CONNECTED) 27] delete /wbiao [zk: localhost:2181(CONNECTED) 28] ls / [zookeeper] #程序注册的地址,服务器地址注册和服务器地址读取是程序自动执行 [zk: localhost:2181(CONNECTED) 29] create wbiao Path must start with / character [zk: localhost:2181(CONNECTED) 30] create /wbiao Created /wbiao [zk: localhost:2181(CONNECTED) 31] create /wbiao/kafka Created /wbiao/kafka [zk: localhost:2181(CONNECTED) 32] create /wbiao/kafka/nodes Created /wbiao/kafka/nodes [zk: localhost:2181(CONNECTED) 33] create /wbiao/kafka/nodes/id-1 "10.0.0.1" Created /wbiao/kafka/nodes/id-1 [zk: localhost:2181(CONNECTED) 34] get /wbiao/kafka/nodes/id-1 10.0.0.1 #查看同步数据的链接3888端口,3888的端口会一直和follower保持链接 root@zk3:/tools/apache-zookeeper-3.6.3-bin/bin# lsof -i:3888 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 34940 root 77u IPv6 127165 0t0 TCP 10.0.0.73:3888 (LISTEN) java 34940 root 78u IPv6 126259 0t0 TCP 10.0.0.73:13975->10.0.0.70:3888 (ESTABLISHED) java 34940 root 79u IPv6 124790 0t0 TCP 10.0.0.73:19083->10.0.0.72:3888 (ESTABLISHED) #在第一次zookeeper集群启动的时候,服务器都没有数据,此时就根据myid最大的选举为leader,在有数据的时候,就看事务id,事务id越新数据就越全,就会被选举为leader #查看日志 root@zk3:/tools/apache-zookeeper-3.6.3-bin/bin# cat /tools/apache-zookeeper-3.6.3-bin/logs/zookeeper-root-server-zk3.out 2023-09-23 18:27:37,782 [myid:] - INFO [main:QuorumPeerConfig@174] - Reading configuration from: /tools/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg 2023-09-23 18:27:37,788 [myid:] - INFO [main:QuorumPeerConfig@460] - clientPortAddress is 0.0.0.0:2181 2023-09-23 18:27:37,788 [myid:] - INFO [main:QuorumPeerConfig@464] - secureClientPort is not set 2023-09-23 18:27:37,788 [myid:] - INFO [main:QuorumPeerConfig@480] - observerMasterPort is not set 2023-09-23 18:27:37,788 [myid:] - INFO [main:QuorumPeerConfig@497] - metricsProvider.className is org.apache.zookeeper.metrics.impl.DefaultMetricsProvider 2023-09-23 18:27:37,797 [myid:3] - INFO [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 128 2023-09-23 18:27:37,797 [myid:3] - INFO [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 1 2023-09-23 18:27:37,798 [myid:3] - INFO [PurgeTask:DatadirCleanupManager$PurgeTask@139] - Purge task started. 2023-09-23 18:27:37,802 [myid:3] - INFO [main:ManagedUtil@44] - Log4j 1.2 jmx support found and enabled. 2023-09-23 18:27:37,802 [myid:3] - INFO [PurgeTask:FileTxnSnapLog@124] - zookeeper.snapshot.trust.empty : false 2023-09-23 18:27:37,807 [myid:3] - INFO [PurgeTask:DatadirCleanupManager$PurgeTask@145] - Purge task completed. 2023-09-23 18:27:37,811 [myid:3] - INFO [main:QuorumPeerMain@151] - Starting quorum peer, myid=3 2023-09-23 18:27:37,827 [myid:3] - INFO [main:ServerMetrics@62] - ServerMetrics initialized with provider org.apache.zookeeper.metrics.impl.DefaultMetricsProvider@6108b2d7 2023-09-23 18:27:37,836 [myid:3] - INFO [main:ServerCnxnFactory@169] - Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory 2023-09-23 18:27:37,837 [myid:3] - WARN [main:ServerCnxnFactory@309] - maxCnxns is not configured, using default value 0. 2023-09-23 18:27:37,839 [myid:3] - INFO [main:NIOServerCnxnFactory@666] - Configuring NIO connection handler with 10s sessionless connection timeout, 1 selector thread(s), 8 worker threads, and 64 kB direct
buffers. 2023-09-23 18:27:37,845 [myid:3] - INFO [main:NIOServerCnxnFactory@674] - binding to port 0.0.0.0/0.0.0.0:2181 2023-09-23 18:27:37,853 [myid:3] - INFO [main:QuorumPeer@753] - zookeeper.quorumCnxnTimeoutMs=-1 2023-09-23 18:27:37,880 [myid:3] - INFO [main:Log@169] - Logging initialized @15506ms to org.eclipse.jetty.util.log.Slf4jLog 2023-09-23 18:27:37,973 [myid:3] - WARN [main:ContextHandler@1660] - o.e.j.s.ServletContextHandler@4d50efb8{/,null,STOPPED} contextPath ends with /* 2023-09-23 18:27:37,973 [myid:3] - WARN [main:ContextHandler@1671] - Empty contextPath 2023-09-23 18:27:37,992 [myid:3] - INFO [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation 2023-09-23 18:27:37,993 [myid:3] - INFO [main:FileTxnSnapLog@124] - zookeeper.snapshot.trust.empty : false 2023-09-23 18:27:37,993 [myid:3] - INFO [main:QuorumPeer@1692] - Local sessions disabled 2023-09-23 18:27:37,993 [myid:3] - INFO [main:QuorumPeer@1703] - Local session upgrading disabled 2023-09-23 18:27:37,993 [myid:3] - INFO [main:QuorumPeer@1670] - tickTime set to 2000 2023-09-23 18:27:37,993 [myid:3] - INFO [main:QuorumPeer@1714] - minSessionTimeout set to 4000 2023-09-23 18:27:37,993 [myid:3] - INFO [main:QuorumPeer@1725] - maxSessionTimeout set to 40000 2023-09-23 18:27:37,994 [myid:3] - INFO [main:QuorumPeer@1750] - initLimit set to 10 2023-09-23 18:27:37,994 [myid:3] - INFO [main:QuorumPeer@1937] - syncLimit set to 5 2023-09-23 18:27:37,994 [myid:3] - INFO [main:QuorumPeer@1952] - connectToLearnerMasterLimit set to 0 2023-09-23 18:27:38,008 [myid:3] - INFO [main:ZookeeperBanner@42] - 2023-09-23 18:27:38,009 [myid:3] - INFO [main:ZookeeperBanner@42] - ______ _ 2023-09-23 18:27:38,009 [myid:3] - INFO [main:ZookeeperBanner@42] - |___ / | | 2023-09-23 18:27:38,009 [myid:3] - INFO [main:ZookeeperBanner@42] - / / ___ ___ | | __ ___ ___ _ __ ___ _ __ 2023-09-23 18:27:38,009 [myid:3] - INFO [main:ZookeeperBanner@42] - / / / _ \ / _ \ | |/ / / _ \ / _ \ | '_ \ / _ \ | '__| 2023-09-23 18:27:38,009 [myid:3] - INFO [main:ZookeeperBanner@42] - / /__ | (_) | | (_) | | < | __/ | __/ | |_) | | __/ | | 2023-09-23 18:27:38,009 [myid:3] - INFO [main:ZookeeperBanner@42] - /_____| \___/ \___/ |_|\_\ \___| \___| | .__/ \___| |_| 2023-09-23 18:27:38,009 [myid:3] - INFO [main:ZookeeperBanner@42] - | | 2023-09-23 18:27:38,009 [myid:3] - INFO [main:ZookeeperBanner@42] - |_| 2023-09-23 18:27:38,010 [myid:3] - INFO [main:ZookeeperBanner@42] - 2023-09-23 18:27:38,035 [myid:3] - INFO [main:Environment@98] - Server environment:zookeeper.version=3.6.3--6401e4ad2087061bc6b9f80dec2d69f2e3c8660a, built on 04/08/2021 16:35 GMT

客户端查看数据

 

标签:zookeeper,18,ZooKeeper,2181,27,集群,myid,leader,搭建
From: https://www.cnblogs.com/yeyouqing/p/17726453.html

相关文章

  • Consul 集群安装
    1.介绍Consul是一款服务网络平台,主要实现服务注册、服务发现、服务网格、服务网关、安全网络以及配置管理等多类服务,非常适合做为微服务架构的底层网络平台。配置中心其实就是一个KV存储,我们如果做配置中心的话其实主要就是用KV存储部分,但是为了以后的可扩展性,我们可能会使......
  • 使用Consul搭建负载均衡
    一、Consul服务注册发现1.启动Consul:consulagent-dev 2.打开Consul地址,默认8500端口:8500 3.封装静态类,注册Consul服务的方法:usingConsul;usingMicrosoft.Extensions.Configuration;usingSystem;publicstaticclassC......
  • 109_博客搭建进阶篇
    这是一篇原发布于2020-01-1709:43:00得益小站的文章,备份在此处。前言本文接《0基础小白向博客搭建指南》[postcid="18"/]本文均以阿里云举例更改面板端口相信大家登录面板的时候都看到了这个提示,为了我们服务器的安全我们还是要把宝塔端口改一下。1.打开阿里云云服务的......
  • 使用Nginx搭建负载均衡
    1.修改配置文件conf/nginx.conf      2.配置文件中增加服务调用upstreamNET6RC2{server127.0.0.1:5726;server127.0.0.1:5727;server127.0.0.1:5728;server127.0.0.1:5729;}server{......
  • kali搭建DVWA踩的坑
    在网上看视频安装DVWA的时候还是遇到了很多问题,这里截取部分新手问题,提出解决方法,避免踩坑。kali搭建LAMP安装apacheaptinstallapache2-y设置开机自启动按q退出安装mysqlaptinstallmariadb-server-y同样设置开机自启安装phpapt-yinstallphp7/0php-pearlibap......
  • 一、简易搭建本地CAS服务端
    CAS服务端war包下载https://repo1.maven.org/maven2/org/apereo/cas/cas-server-webapp-tomcat/5.3.14/可使用迅雷下载cas-server-webapp-tomcat-5.3.14.war,速度很快将wab包放到本地tomcat的webapps下D:\tomcat\apache-tomcat-8.5.63\webapps\cas\WEB-INF\classes\servic......
  • 每日总结2023/9/24(zookeeper)
    什么是ZooKeeper?ZooKeeper是一个分布式的,开放源码的分布式应用程序协同服务。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。ZooKeeper发展历史ZooKeeper最早起源于雅虎研究院的......
  • JMeter 分布式集群远程压测及搭建常见问题
    1、JMeter可以在以下场景下使用分布式远程压测:性能测试:JMeter可以模拟大量用户并发访问,进行性能测试。当需要模拟成千上万的用户请求时,单台机器可能无法承受如此大的负载,此时可以使用分布式远程压测来将测试负载分发到多台机器上,提高测试的效率和准确性。稳定性测试:在一段时间......
  • Redis搭建集群架构
    使用docker搭建6.x版本以后的镜像docker支持部署集群模式,由于Redis要求集群至少要有三个主节点,因此本次测试搭建了三主三从的Redis集群。不基于Host网络模式配置docker-compose.yml文件version:"3"networks:redis-cluster:driver:bridgeipam:......
  • ceph(四)ceph集群管理、pg常见状态总结
    1.ceph常见管理命令总结1.1只显示存储池cephosdpoolls示例$cephosdpoollsdevice_health_metricsmypoolmyrbd1rbd-data11.2列出存储池并显示idcephosdlspools示例$cephosdlspools1device_health_metrics2mypool3myrbd14rbd-data11.3查看p......