kafka系列之集群部署使用(二)

来源:互联网 发布:mysql安装教程5.7.20 编辑:程序博客网 时间:2024/05/18 03:52

接上一个单节点部署:
1、kafka配置copy出server-1.properties、server-2.properties。
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
2、编辑这两个配置。
vim config/server-1.properties
broker.id=1(需要保证唯一,不要求跟前一个broker.id是连续数字)
listeners=PLAINTEXT://9093
log.dir=/tmp/kafka-logs-1
kafka server.properties
vim config/server-2.properties
broker.id=2
listeners=PLAINTEXT://9094
log.dir=/tmp/kafka-logs-2
3、启动kafka的两个broker。
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &
4、创建一个topic,topic主题为test2,1个分区,3个副本因子
bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 3 –partitions 1 –topic test2
注意:加上第一篇的broker,这里是三个broker节点集群,每个broker节点上正好有一个副本,副本因子不能超过broker的节点数量。
5、查看topic的描述
bin/kafka-topics.sh –describe –zookeeper localhost:2181
Topic:test2 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test2 Partition: 0 Leader: 1 Replicas: 1,0,2 Isr: 1,0,2
topic 描述
● “leader” 是能够响应读跟写的那个分区副本。每一个leader随机从分区副本中选出来的,如上图所示leader为broker.id=1所在的分区副本。
● “replicas” 分区的复制节点集合,包括了leader。如上图所示0分区的replicas为在broker.id为1,2,0的副本。
● “isr” 同步中的副本,这是replicas子集,是能跟随着leader的脚步的副本,没有掉队的副本。
6、发送消息
bin/kafka-console-producer.sh –broker-list localhost:9092 –topic test2
This is my test message.
heheda.
注意:–broker-list localhost:9092,这里是broker的地址,可以写多个,多个以英文逗号隔开,也可以写集群节点的一部分。9092是broker.id=0的节点的监听的端口。
kafka producer
7、查看消费的消息
bin/kafka-console-consumer.sh –bootstrap-server localhost:9092 –from-beginning –zookeeper localhost:2181 –topic test2
This is my test message.
heheda.
注意:–bootstrap-server localhost:9092,这里是broker的地址,可以写多个,多个以英文逗号隔开,也可以写集群节点的一部分。9092是broker.id=0的节点的监听的端口。类似–broker-list的配置。
kafka comsumer
8、模拟一个broker节点宕机
目前我们启动了三个broker节点,broker的id分表为0,1,2
我们把broker的id为1的进程杀死(分区副本leader所在的broker),使用命令查看 ps aux | grep server-1.properties,如下图,找到broker的id为1的进程id为1793。
然后杀死,使用命令:kill -9 1793
模拟broker宕机
9、查看topic为test2的描述信息
bin/kafka-topics.sh –describe –zookeeper localhost:2181
Topic:test2 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test2 Partition: 0 Leader: 0 Replicas: 1,0,2 Isr: 0,2
topic 描述
注意:与第5点比较,发现leader挂掉之后,会重新选举leader出来。同时Isr会把挂掉的分区踢出。
10、测试是否可以发送与消费消息
bin/kafka-console-producer.sh –broker-list localhost:9092,localhost:9093,localhost:9094 –topic test2
生产者发送消息
bin/kafka-console-consumer.sh –bootstrap-server localhost:9092 –from-beginning –topic test2
消费者消费消息
测试结果还是可以的。

原创粉丝点击