kafka集群安装
在入门系列一,我进行了单节点的安装,本文我将安装多节点的集群。在kafka中,一个broker就是集群中的一个节点,而我们在一个kafka中可以启动多个broker,所以一台机器,装一个kafka,通过启动多个broker的形式,就可以建一个集群。
下面我一步步演示:
1. 配置多个broker,这个主要就是配置多个broker的配置文件。
进入kafka的安装目录的config目录下,我新增了server-1.properties,server-2.properties这2个配置文件。
2.修改配置文件,原来的server.properties这个文件我们可以不去改它,保持默认的设置。
新增的server-1.properties和server-2.properties文件主要改3个地方。
config/server-1.properties: broker.id=1 port=9093 log.dir=/tmp/kafka-logs-1 config/server-2.properties: broker.id=2 port=9094 log.dir=/tmp/kafka-logs-2 broker.id在整个集群中是唯一的,并且是固定不变的。port和log.dir也设成不一样,是因为我们是在同一台机器上搭建的集群,如果在多台机器上,这个可以一样。 3.启动2个新建的kafka的broker(如果zookeeper和原来那个老的kafka broker没启动的话可以参考我上一篇《kafka安装》去启动)![]()
4.为集群建一个新的主题。
5.查看集群broker信息。
可以看到我们刚才建的主题名,分区数量和复制因子等信息. 6.给我们的主题发送消息:
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic ... my test message 1 my test message 27.消费消息> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic ... my test message 1 my test message 2 ^C8.测试有broker挂掉的情况
因为我们建的复制因子是3,所以消息存有3份。只要还有一个broker,消息就不会丢掉。
具体测试操作是找出broker的进程号,kill掉其中的1个或者2个broker,再去消费消息,消息能准确获取到,不会丢失。