Kafka的集群部署

日常本地开发中,一台Kafka肯定足够使用。但是在实际生产中,集群可以跨服务器进行负载均衡,再则可以使用复制功能来避免单独故障造成的数据丢失。同时集群还可以提供高可用性。
Kafka的集群部署

那么又该如何估算Kafka集群中Broker的数量,主要需要考虑需要多少磁盘空间保留数据,和每个Broker上有多少空间可以用。


比如,如果一个集群有10TB的数据需要保留,而每个Broker可以存储2TB,那么至少需要5个Broker。如果启用了数据复制,则还需要一倍的空间,那么这个集群需要10个Broker。


另外部署Kafka集群可以提供其处理请求的能力。因为磁盘吞吐量和内存不足造成性能问题,可以通过扩展Broker来解决。




那么我们又该如何来部署一个Kafka集群,其实Kafka的集群还是比较简单的,我们在Kafka的安装、管理和配置中,介绍Kafka配置文件的时候,就提供到一些Kafka集群需要修改的参数。


首先我们在本地拷贝了3个Kafka程序,然后进行其/config/server.properties文件,最主要的就是需要修改 broker.id ,如下
Kafka的集群部署
Kafka的集群部署
Kafka的集群部署


然后就需要配置其Zookeeper的连接节点 zookeeper.connect,这里我们需要将其配置成同一节点,如下:
Kafka的集群部署
Kafka的集群部署
Kafka的集群部署



然后如果我们在不同的机器上部署Kafka集群,那么对于配置文件的修改就基本完成了,但是这里我们是在本地进行的,所以我们这里一般还需要进行对存放这些数据的目录配置 log.dirs ,以及监听列表的端口 listeners 进行修改,如下:
Kafka的集群部署
Kafka的集群部署
Kafka的集群部署


然后我们就需要启动Zookeeper服务,这里我们就直接启动Zookeeper服务,这里就不做Zookeeper集群处理,有关Zookeeper的集群处理,可见Zookeeper集群部署,启动Zookeeper服务后,我们就可以依次启动上述三个Kafka服务了,如下:
Kafka的集群部署
Kafka的集群部署
Kafka的集群部署


启动完成后,如下:
Kafka的集群部署


然后我们就可以使用Zookeeper的可视化客户端进行查看其kafka节点情况,如下:
Kafka的集群部署