版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oumuv/article/details/84862089
环境要求
步骤
一、在mac中安装kafka
参考kafka 安装 for mac
配置一下kafka的环境变量:
sudo vim /etc/profile
加入配置
export KAFKA_HOME=/usr/local/Cellar/kafka/2.1.0
export PATH=.:$PATH:$KAFKA_HOME/bin
刷新一下配置
source /etc/profile
二、启动zookeeper
可以直接使用kafka默认的zookeeper:
zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties &
三、配置kafka
假设我们只搭建三个kafka集群,那么我们积极需要给这三个kafka配置server.properties
- 复制两份server.properties
cp /usr/local/etc/kafka/server.properties /usr/local/etc/kafka/server1.properties
cp /usr/local/etc/kafka/server.properties /usr/local/etc/kafka/server2.properties
- 分别修改server1.properties、server2.properties
修改位置 |
server.properties |
server1.properties |
server2.properties |
broker.id |
broker.id=0 |
broker.id=1 |
broker.id=2 |
listeners |
listeners=PLAINTEXT://:9092 |
listeners=PLAINTEXT://:9093 |
listeners=PLAINTEXT://:9094 |
log.dir |
log.dir=/usr/local/var/lib/kafka-logs-1 |
log.dir=/usr/local/var/lib/kafka-logs-2 |
log.dir=/usr/local/var/lib/kafka-logs-3 |
- 启动三个kafka
kafka-server-start /usr/local/etc/kafka/server.properties &
kafka-server-start /usr/local/etc/kafka/server1.properties &
kafka-server-start /usr/local/etc/kafka/server2.properties &
- 创建一个有三个副本的topic
kafka-topics --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic mytopic
- 使用describe命令查看topic的信息
kafka-topics --describe --zookeeper localhost:2181 --topic mytopic
“leader”:该集群中broker.id=2 的 kafka是 leader,leader负责数据的读取、同步
“replicas”:存在的节点列表(包含已经挂掉的)
“isr”:“同步备份”的节点列表(不包含已经挂掉的,也就是活着的节点并且正在同步leader)。
测试
由上图可知当前的leader是broker.id为2的kafka服务器,下面测试将当前的leader杀死
杀死一个id为2的kafka,模拟当前leader服务器宕机
解释上图:
Leader:0:当旧的leader挂掉之后马上重新选举出一个新的leader(broker.id为0的kafka)
Isr:0,1:将已经挂掉的kafka去除同步备份的节点列表