本文搭建一个三节点的Kafka集群。该集群有三个Zookeeper、三个Kafka Broker。
unzip kafka_2.11-0.11.0.1.zip
kafka_2.11-0.11.0.1
.
├── LICENSE
├── NOTICE
├── bin
├── config
├── libs
├── logs
└── site-docs
cd kafka_2.11-0.11.0.1
tree -L 1
Kafka
的 config
目录,要修改的主要是server.properties以及zookeeper.properties两个配置文件。
对Kafka感兴趣的童鞋们可前往 https://www.cnblogs.com/jun1019/p/6256371.html 了解Kafka常用配置属性详解。
server.properties kafka配置文件
zookeeper.properties zookeeper配置文件
zookeeper.properties
:
Zookeeper配置详解可参考:http://blog.csdn.net/lengzijian/article/details/9226867
initLimit=10
syncLimit=5
dataDir=/Users/apple/Desktop/zookeeper # zookeeper的快照存储地址
clientPort=2181
# zookeeper端口
maxClientCnxns=0
# 单个客户端与单台服务器之间的连接数的限制
server.1=IP1:2888:3888
# server.x中的x要与myid中的数字一致,2888用于follower与leader之间的数据同步与其他通信;3888用于leader选举时的通信。
server.2=IP2:2889:3889
server.3=IP3:2890:3890
dataDir
目录,并创建myid文件,内容分别是1、2、3。注意myid的内容要与 server.x
中的x相一致。
cd /Users/apple/Desktop/zookeeper
vim myid
zookeeper.properties
并创建 myid
文件后,即可进行测试。依次在三台机器上执行如下命令,即可启动Zookeeper集群。
cd kafka_2.11-0.11.0.1
# 切换到你的Kafka目录
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
搭建完Zookeeper集群后,Kafka集群的搭建就完成了一大半。下面我们来搭建Kafka集群:
server-cluster.properties
,在其中填写如下内容:
当然,这里 server-cluster.properties
名称不是强制的,你可以叫其他名字;不仅如此,也可直接修改 server.properties
。
broker.id=1
# kafka broker的id,三个节点不能相同
listeners=PLAINTEXT://:9094 # kafka所使用的端口
log.dir=/tmp/kafka-logs # kafka日志路径
zookeeper.connect=xxx,yyy,zzz # Zookeeper集群的地址列表,IP:PORT的形式,多个用,分隔
cd kafka_2.11-0.11.0.1
# 切换到你的Kafka目录
bin/kafka-server-start.sh config/server-cluster.properties &
bin/kafka-topics.sh --create --zookeeper xxx,yyy,zzz --replication-factor 3
--partitions 1
--topic my-replicated-topic
describe topics
命令:
其中,第一行是对所有partition的摘要,每个附加行给出了每个partition的详情,这里只有一个partition,所以只有一行。
leader是负责给定partition所有读写的节点,每个节点将称为partition随机选择部分的leader。
replicas是复制此partition日志的节点列表,无论它们是否leader,即使它们处于活动状态。
isr是一组 in-sync
副本,这是replicas列表的子集,这些副本当前活动,并被引导到leader。
bin/kafka-topics.sh --describe --zookeeper xxx,yyy,zzz --topic my-replicated-topic
Topic:my-replicated-topic PartitionCount:1
ReplicationFactor:3
Configs:
Topic:
my-replicated-topic Partition:
0
Leader:
1
Replicas:
1,3,2
Isr:
1,3,2
笔者按:isr常被翻译成“副本同步队列”。 leader、replicas、isr可参考:https://www.cnblogs.com/mengyou0304/p/4836555.html
bin/kafka-console-producer.sh --broker-list kafka集群地址列表
--topic my-replicated-topic
bin/kafka-console-consumer.sh --bootstrap-server kafka地址
--from-beginning --topic my-replicated-topic
参考笔者博客Kafka Manager管理Kafka集群:http://www.itmuch.com/work/kafka-manager/
本文分享自 A周立SpringCloud 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!