kafka是依赖于zookeeper的,也就是说创建的topic中的分区副本等信息存储在zookeeper上面,实际的数据还是存储在本地指定的logs文件中
在集群中启动kafka首先要启动zookeeper
1. 2181是客户端与zookeeper通信用的端口号
2. 9092是客户端与kafka通信用的端口号
启动kafka集群服务(单起)
kafka-server-start.sh -daemon server.properties
创建test的主题(指定副本数为1,分区数为2)
kafka-topic.sh --create --zookeeper hadoop101:2181 --replication-factor 1
--partitions 2 --topic test
因为kafka基于zookeeper,所以机器ip写谁都行
查看创建的主题有哪些
kafka-topic.sh --list --zookeeper hadoop101:2181
发送消息(创建生产者,指定生产者和主题)
kafka-console-producer.sh --broker-list hadoop102:9092 --topic test
接收消息 (创建消费者,指定消费者是谁和主题 PS:可指定分组)
船新版本:
kafka-console-consumer.sh
--bootstrap-server localhost:9092 //指定主机ip
--consumer-property group.id=testGroup //指定消费者所属组
--consumer-property client.id=consumer-1 //指定消费者再在组中的名字/代号
--topic test //指定消费者要接收主题
--from-beginning //完整获取对应topic存储的信息
旧版本:
kafka-console-consumer.sh
--zookeeper localhost:2181 //与zookeeper连接
--topic test //指定主题
--from-beginning //完整获取对应topic所存储的信息
查看消费者所属组
kafka-consumer-groups.sh
--bootstrap-server localhost:9092
--list
--new-consumer
根据不同的分组中消费者的数量不同分为单播消费和多播消费
多播消费:每组中只有一个消费者
每个消费者都能收到信息
单播消费:每组中有若干个消费者
同组中只能有一个消费者收到信息