前面在centos2上已装了kafka,现将安装包拷贝到centos3、centos4的/opt/kafka中。解压之。
修改centos3配置文件:config/server.properties
参数 | 默认值 | 参考数值 |
broker.id | 0 | 1 |
port | 9092 | 9093 |
log.dirs | /tmp/kafka-logs | /opt/kafka/kafka_2.12-1.0.0/logs |
zookeeper.connect | localhost:2181 | centos2:2181 |
修改centos4配置文件:config/server.properties
参数 | 默认值 | 参考数值 |
broker.id | 0 | 2 |
port | 9092 | 9094 |
log.dirs | /tmp/kafka-logs | /opt/kafka/kafka_2.12-1.0.0/logs |
zookeeper.connect | localhost:2181 | centos2:2181 |
各机器上启动kafka
bin/kafka-server-start.sh config/server.properties &
启动后先查看topic:
bin/kafka-topics.sh --list --zookeeper centos2:2181
三台机器上都输出了:kafkademo(上面单机时创建的topic)
创建topic:一个分区两个副本
bin/kafka-topics.sh --create --zookeeper centos2:2181 --replication-factor 2 --partitions 1 --topic kafkaClusterDemo
注:副本数要小于broker数,否则会报错:
ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 2.
生产消息:
在centos2机器上创建一个生产者:
bin/kafka-console-producer.sh --broker-list centos2:9093 --topic kafkaClusterDemo
消费者:
在centos3上创建一个消费者:
bin/kafka-console-consumer.sh --zookeeper centos2:2181 --topic kafkaClusterDemo --from-beginning
bin/kafka-topics.sh --describe --zookeeper centos2:2181
在生产者输入消息,在消费者上可以看到消息输出
Kill掉centos2上的kafka
再生产消息,在消费者界面依然可以收到消息,说明集群运行成功,则宕掉一台机器也OK。
再停掉centos3上的kafka,消息消费者界面报错:
但是断续生产消息,消费者还能正常获取,说明集群还能正常工作。