Kafka是一个分布式、可分区、可复制的消息系统。Kafka将消息以topic为单位进行归纳;Kafka发布消息的程序称为producer,也叫生产者;Kafka预订topics并消费消息的程序称为consumer,也叫消费者;当Kafka以集群的方式运行时,可以由一个服务或者多个服务组成,每个服务叫做一个broker,运行过程中producer通过网络将消息发送到Kafka集群,集群向消费者提供消息。
下载地址:http://kafka.apache.org
下载下来为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
vim config/server.properties,修改kafka配置:server.propertiesbroker.id=1 ##注意集群中不同机器上配置的“数字”不能相同
num.partitions=4host.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/logszookeeper.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/logsrm -rf *
显示所有topicbin/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_topic1aaabbbccc
登录另外一台执行,会收到aaabbbcccbin/kafka-console-consumer.sh --zookeeper 10.100.160.132:2181 --topic cmy_nbd_topic1 --from-beginningaaabbbccc
