Kafka支持多种集群方式:
- 单节点单broker集群
- 单节点多broker集群
- 多节点多broker集群
一、单节点单broker集群
在上篇中,我们在单台机器上部署了Kafka,现在将其设置为单节点单broker集群。架构如图所示:
①修改配置文件:
zookeeper.properties文件(先手动创建zookeeper目录)
dataDir=/opt/kafka/clusters/oneNodeoneBroker/zookeeper
server.propertis文件(先手动创建logs目录)
broker.id=0
port=9092
log.dirs=/opt/kafka/clusters/oneNodeoneBroker/logs
num.partitions=2
zookeeper.connect=192.168.37.137:2181
produce.properties
metadata.broker.list=192.168.37.137:9092
consumer.properties
metadata.broker.list=192.168.37.137:9092
group.id=test-consumer-group
②启动
先启动zookeeper
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties
启动kafka broker
./kafka-server-start.sh -daemon ../config/server.properties
③使用
创建一个名为oneNodeOneBroker的topic,单partitoin且只有一个副本:
sh kafka-topics.sh --create --zookeeper 192.168.37.137:2181 --replication-factor 1 --partitions 1 --topic oneNodeOneBroker
查看topic列表:
sh kafka-topics.sh --list --zookeeper 192.168.37.137:2181
单机连通性测试:
①启动生产者
sh kafka-console-producer.sh --broker-list 192.168.37.137:9092 --topic oneNodeOneBroker
②启动消费者
sh kafka-console-consumer.sh --bootstrap-server 192.168.37.137:9092 --topic oneNodeOneBroker --from-beginning
在producer端输入字符串并回车,consumer端显示则表示成功。
③关闭
停止kafka broker
sh kafka-server-stop.sh
停止zookeeper
sh zookeeper-server-stop.sh
二、单节点多broker集群
①修改配置文件:
zookeeper.properties文件(先手动创建zookeeper目录)
dataDir=/opt/kafka/clusters/oneNodeoneBroker/zookeeper
server-1.propertis文件(先手动创建logs/1目录)
broker.id=1
port=9093
log.dirs=/opt/kafka/clusters/oneNodemanyBroker/logs/1
zookeeper.connect=192.168.37.137:2181
server-2.propertis文件(先手动创建logs/2目录)
broker.id=2
port=9094
log.dirs=/opt/kafka/clusters/oneNodemanyBroker/logs/2
zookeeper.connect=192.168.37.137:2181
produce.properties
metadata.broker.list=192.168.37.137:9093,192.168.37.137:9094
consumer.properties
metadata.broker.list=192.168.37.137:9093,192.168.37.137:9094
group.id=test-consumer-group
②启动
先启动zookeeper
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties
启动kafka broker
./kafka-server-start.sh -daemon ../config/server-1.properties
./kafka-server-start.sh -daemon ../config/server-2.properties
③使用
创建一个名为oneNodeManyBroker的topic,单partitoin且只有一个副本:
sh kafka-topics.sh --create --zookeeper 192.168.37.137:2181 --replication-factor 1 --partitions 1 --topic oneNodeManyBroker
查看topic列表:
sh kafka-topics.sh --list --zookeeper 192.168.37.137:2181
单机连通性测试:
①启动生产者
sh kafka-console-producer.sh --broker-list 192.168.37.137:9093,192.168.37.137:9094 --topic oneNodeManyBroker
②启动消费者
sh kafka-console-consumer.sh --bootstrap-server 192.168.37.137:9093,192.168.37.137:9094 --topic oneNodeManyBroker --from-beginning
在producer端输入字符串并回车,consumer端显示则表示成功。
③关闭
停止kafka broker
sh kafka-server-stop.sh
停止zookeeper
sh zookeeper-server-stop.sh
多节点多broker集群
在多节点多broker集群中,每个节点都需要安装Kafka,且所有的broker都连接到同一个ZooKeeper