Kafka简介
Kafka是一个分布式、可分区、可复制的消息系统。Kafka将消息以topic为单位进行归纳;Kafka发布消息的程序称为producer,也叫生产者;Kafka预订topics并消费消息的程序称为consumer,也叫消费者;当Kafka以集群的方式运行时,可以由一个服务或者多个服务组成,每个服务叫做一个broker,运行过程中producer通过网络将消息发送到Kafka集群,集群向消费者提供消息。
第一步:Kafka下载
下载下来为kafka_2.12-1.0.0.tgz。请使用tar -zxvf /home/kafka_2.12-1.0.0.tgz解压至/opt目录
第二步:安装前准备
IP及端口分配:
IP | 服务端口 |
10.100.104.135 | 9092 |
10.100.104.136 | 9092 |
10.100.104.137 | 9092 |
第三步:Kafka安装
vim config/server.properties,修改kafka配置:server.properties
broker.id=1 ##注意集群中不同机器上配置的“数字”不能相同
num.partitions=4
host.name=10.100.104.136 ##注意集群中不同机器上配置的“IP”不能相同
listeners=PLAINTEXT://10.100.104.136:9092 ##注意集群中不同机器上配置的“IP”不能相同
advertised.listeners=PLAINTEXT://10.100.104.136:9092 ##注意集群中不同机器上配置的“IP”不能相同
log.dirs=/opt/kafka_2.12-1.0.0/logs
zookeeper.connect=10.100.160.132:2181,10.100.160.133:2181,10.100.160.134:2181
第四步:启动
执行命令:bin/kafka-server-start.sh -daemon config/server.properties
问题及解决方案
如果broker.id更换,需清空log目录的所有文件:
cd /opt/kafka_2.12-1.0.0/logs
rm -rf *
测试
显示所有topic
bin/kafka-topics.sh --list --zookeeper 10.100.160.132:2181,10.100.160.133:2181,10.100.160.134:2181创建测试用的topic,其中10.100.160.132:2181为zookeeper 地址和端口
bin/kafka-topics.sh --create --zookeeper 10.100.160.132:2181 --replication-factor 1 --partitions 4 --topic cmy_nbd_topic1
执行会显示出cmy_nbd_topic1登录一台执行,然后输入如 aaabbbccc 回车
bin/kafka-console-producer.sh --broker-list 10.100.104.136:9092 --topic cmy_nbd_topic1
aaabbbccc登录另外一台执行,会收到aaabbbccc
bin/kafka-console-consumer.sh --zookeeper 10.100.160.132:2181 --topic cmy_nbd_topic1 --from-beginning
aaabbbccc