Mac搭建kafka集群

之前完成了单点的kafka,今天我们来完成kafka集群的搭建。

首先设置多个broker

首先为每个broker创建一个配置文件。

cp config/server.properties config/server-1.properties 
cp config/server.properties config/server-2.properties

然后编辑这些新的配置文件,设置新的属性,不然会引起冲突:

config/server-1.properties: 
    broker.id=1 
    listeners=PLAINTEXT://:9093 
    log.dir=/tmp/kafka-logs-1

config/server-2.properties: 
    broker.id=2 
    listeners=PLAINTEXT://:9094 
    log.dir=/tmp/kafka-logs-2

broker.id是集群中每个节点的唯一且永久的名称。

修改端口和日志目录是为了防止broker在同一端口上注册和覆盖对方的数据,因为现在我们是运行在同一太机器上。

启动节点

启动zookeeper:

bin/zkServer.sh start

启动zookeeper节点

bin/kafka-server-start.sh config/server-0.properties
bin/kafka-server-start.sh config/server-1.properties
bin/kafka-server-start.sh config/server-2.properties

创建topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic test1

将备份的设置为3

到现在为止,我们就有一个集群了,我们来看一下各个broker在干什么

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test1
Topic:my-replicated-topic    PartitionCount:1    ReplicationFactor:3    Configs:
Topic: my-replicated-topic    Partition: 0    Leader: 1    Replicas: 1,2,0    Isr: 1,2,0

第一行是所有分区的摘要,每一行提供一个分区信息。

因为我们只设置了一个分区,所以只有一行。

Leader:负责该分区的所有读和写,每个节点的leader都是随机选择的

Replicas:备份的节点列表,无论该节点是否是leader或者目前是否还或者,只是显示。

Isr:同步备份的节点列表,也就是活着的节点并且正在同步leader

创建生产者和消费者

生产者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test1

消费者

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1 --from-beginning

此时在生产者的窗口写什么东西,消费者的窗口就会显示出什么东西

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test1
>1
>test1
>love
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1 --from-beginning
1
test1
love

测试集群的容错性

接下来,我们将leader给kill,通过之前的describe可知,leader就是broker1

ps | grep server-1.properties

46987 ttys002    0:33.99 /usr/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX.........

kill -9 46987

剩下的两个备份节点的一个会成为新的leader,而broker1已经不再同步备份集了

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test1
Topic:test1	PartitionCount:1	ReplicationFactor:3	Configs:
Topic: test1	Partition: 0	Leader: 2	Replicas: 1,2,0	Isr: 2,0

接下来重新创建消费者,会发现原来消息队列中的消息并没有丢。

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test1
1
test1
love

至此,简单的kafka集群搭建完毕!!!

提示大家碰到zookeeper或者kafka错误的时候,可以去.out文件中去看,这个文件里面有报错原因。之前我不知道,真的就碰到错误了在网上一个一个找,碰运气,花费了大把的时间

猜你喜欢

转载自blog.csdn.net/weixin_43589025/article/details/116304151
今日推荐