zookeeper集群+kafka集群
zookeeper是一个开源的,分布式的,为分布式架构提供协调服务的APACHE的项目。
保存元数据。数据的走向,发送路径不依赖zookeeper。
zookeeper工作机制:
观察者模式设计的分布式服务器管理架构。
负责存储和管理元数据,记录集群的变化。保存集群变化的信息。
zookeeper的特点:
1、在集群中分为领导者和追随者,组成的集群。
2、只要有半数以上的节点正常工作,整个zookeeper就可以正常工作。(zookeeper在部署时一般奇数台)
3、全局的数据一致。每个zookeeper不论是领导者还是追随者,在访问他们数据时都是一致的。
4、数据更新的原子性,一次更新数据,要么都成功,要么都失败
5、数据更新的实时性能。
6、领导者和追随者根据投票产生
选举机制:
A B C
1、服务器A 启动 发起一次选举,A会投自己一票。A有一票,不够半数。选举无法完成。A进入looking1状态
2、服务器B 启动 再发起一次选举,服务器B也投自己一票,服务器A和服务器B做个比较,myid,谁myid大,
如果A比B小,A会把票改投给B,2票,B自动当选为leader
3、C启动了,自动成为追随者,A也会成为追随者
yum install -y java
java -version
mv apache-zookeeper-3.5.7-bin /opt/zookeeper
cd zookeeper/
cd conf/
ls
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
2 tickTime=2000
3 #通信心跳时间,zookeeper服务端和客户端之间通信的时间,单位毫秒
6 initLimit=10
7 #leader和follower初始连接时,最多能容忍的心跳数。秒
10 syncLimit=5
11 #leader和follower之间同步通信的超时时间。如果5*2的时间,发生同步超时,leader就认为fo llower死了,会把他从集群当中删除
19 clientPort=2181
20 #服务端口
15 dataDir=/opt/zookeeper/data
16 #数据保存目录
17 dataLogDir=/opt/zookeeper/logs
21 server.1=192.168.11.144:3188:3288
192.168.11.144服务器的ip地址
3188:zookeeper集群内部通信的端口
3288:重新选举端口,万一leader挂了,用这个端口进行内部通信,选举新的leader
22 server.2=192.168.11.145:3188:3288
23 server.3=192.168.11.146:3188:3288
mkdir /opt/zookeeper/data
mkdir /opt/zookeeper/logs
vim /etc/init.d/zookeeper
#!/bin/bash
#chkconfig:2345 20 90
#description:Zookeeper Service Control Script
ZK_HOME='/opt/zookeeper'
case $1 in
start)
echo "---------- zookeeper 启动 ------------"
$ZK_HOME/bin/zkServer.sh start
;;
stop)
echo "---------- zookeeper 停止 ------------"
$ZK_HOME/bin/zkServer.sh stop
;;
restart)
echo "---------- zookeeper 重启 ------------"
$ZK_HOME/bin/zkServer.sh restart
;;
status)
echo "---------- zookeeper 状态 -----
chmod +x /etc/init.d/zookeeper
chkconfig -add zookeeper
chkconfig --add zookeeper
echo 1 > /opt/zookeeper/data/myid #三台设备每台对应数值不一样对一台对应1,第二台2,第三台3
service zookeeper start
service zookeeper status
kafka概述
消息队列:MQ
在高并发额