一.搭建kafka集群(三个broker)
==集群中有多个broker,创建主题时可以指明主题有多个分区(把消息拆分到不同的分区中存
储),可以为分区创建多个副本,不同的副本存放在不同的broker⾥,会有⼀个
副本作为leader,其他是follower。 ==
1. 创建三个server.properties⽂件
#0 1 2
broker.id=2
// 9092 9093 9094
listeners=PLAINTEXT://192.168.65.60:9094
//kafka-logs kafka-logs-1 kafka-logs-2
log.dir=/usr/local/data/kafka-logs-2
2.通过命令来启动三台broker
./kafka-server-start.sh -daemon ../config/server.properties
./kafka-server-start.sh -daemon ../config/server1.properties
./kafka-server-start.sh -daemon ../config/server2.properties
3.校验是否启动成功
进⼊到zk中查看/brokers/ids中 是否有三个znode(0,1,2)
二、创建主题,分区数以及副本
./kafka-topics.sh --create --zookeeper 172.16.253.35:2181 --replicationfactor
3 --partitions 2 --topic my-replicated-topic
#查看topic情况
./kafka-topics.sh --describe --zookeeper 172.16.253.35:2181 --topic myreplicated-topic
leader:
kafka的写和读的操作,都发⽣在leader上。leader负责把数据同步给follower。当leader挂
了,经过主从选举,从多个follower中选举产⽣⼀个新的leader
follower:
接收leader的同步的数据
isr:
可以同步和已同步的节点会被存⼊到isr集合中。这⾥有⼀个细节:如果isr中的节点性能
较差,会被提出isr集合