kafka:kafka_2.11-2.4.1.tgz
zk链接工具:ZooInspector
使用docker安装zk:
$ docker search zookeeper # 查看一下镜像
$ docker pull zookeeper:3.4.9 # 拉取指定版本zk镜像
$ docker images # 查看image ID
$ mkdir -p /docker/zk/data
$ docker run -d -p 2181:2181 -v /docker/zk/data:/data/ --name zookeeper --privileged 3b83d9104a4c # 最后跟着 image ID
修改配置: /kafka2.11-2.4/config/server.properties
#broker.id属性在kafka集群中必须要是唯一
broker.id=0
#kafka部署的机器ip和提供服务的端⼝号
listeners=PLAINTEXT://192.168.3.47:9092
#kafka的消息存储⽂件
log.dir=/usr/local/data/kafka-logs
#kafka连接zookeeper的地址
zookeeper.connect=192.168.3.47:2181
启动kafka服务:
./kafka-server-start.sh -daemon …/config/server.properties
测试:
发送消息:
./kafka-console-producer.sh --broker-list 192.168.3.47:9092 --topic testtopic
从最后一条消息的偏移量+1开始消费:
./kafka-console-consumer.sh --bootstrap-server 192.168.3.47:9092 --topic testtopic
从头开始消费
./kafka-console-consumer.sh --bootstrap-server 192.168.3.47:9092 --from-beginning --topic testtopic
单播消息
./kafka-console-consumer.sh --bootstrap-server 192.168.3.47:9092 --consumer-property group.id=testGroup --topic testtopic
同一个消费组中只能有一个消费者收到一个topic中的消息
多播消息
./kafka-console-consumer.sh --bootstrap-server 192.168.3.47:9092 --consumer-property group.id=testGroup1 --topic test
./kafka-console-consumer.sh --bootstrap-server 192.168.3.47:9092 --consumer-property group.id=testGroup2 --topic test
不同的消费组订阅同一个topic,那么不同的消费组中只有一个消费者能收到消息。实际上也
是多个消费组中的多个消费者收到了同一个消息