(42条消息) 【kafka系列】kafka之生产者发送消息实践_溪~源的博客-CSDN博客_kafka生产者发送消息命令
1.通过kafka向zk发送命令让它创建一个无状态topic
bin/kafka-topics.sh --bootstrap-server 82.157.198.247:9092 --create --partitions
2.查看当前zk中所有主题topic
bin/kafka-topics.sh --bootstrap-server 82.157.198.247:9092 --describe --topic test
** 3.发送消息**
把消息发送给broker中的某个topic
我们可以直接在命令行中输入内容,将消息发送到Kafka中,每一行会被当做一个独立的消息;使用kafka的发送消息客户端——>发送到指定的kafka服务器地址和topic主题
bin/kafka-console-producer.sh --broker-list 82.157.198.247:9092 --topic test
我们每发一条信息,都会发送到指定的kafka服务器上 ,那么具体保存在哪呢?就是日志文件下:主题-标识id分区下的0000.log
4.消费消息
**1.从最后一条消息+1开始消费 **
bin/kafka-console-consumer.sh --bootstrap-server 82.157.198.247:9092 --topic test
案例:
上面也讲了消息的发送者将消息发送到oooo.log中,并且按照偏移量排序**(描述消息的有序性)**,所以消费者去当中进行消费
** 2.从头开始消费**
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test
本质就是一个发布订阅,我们来看看日志文件看看是如何消费的
蓝色的是消费者的消费偏移量,然后还有个test-0存放当前topic节点的信息
进入test-0(topic主题-标识id)
单播消息和多播消息
单播消息
概念:一个消费组里面只能有一个消费者订阅到topic的消息
在kafka的topic中启动两个消费者,一个生产者,消费者是否都会收到?
1.在kafka服务器broker后配置服务组 --consumer -property.id=xxx
bin/kafka-console-consumer.sh --bootstrap-server 82.157.198.247:9092 --consumer-property group.id=testGroup --topic test
2.利用消费组组开启一个消费组消费消息,发现消费者接收到了消息(利用消费组)
3.再开启一个消费者(消费组中),发现这个消费者消费不了服务方发来的消息
- 但是如果一个消费者一个不在同消费组可以一起消费同一个topic的消息
** 那么不同消费组的能否消费同topic的消息呢?**
是可以的,也就是我们的多播消息,不同消费组订阅同一个topic
bin/kafka-console-consumer.sh --bootstrap-server 82.157.198.247:9092 --consumer-property group.id=testGroup1 --topic test
消费组TestGroup1
消费组TestGroup
多播消息
不同消费组的消费者能够订阅同一个topic的消息,**单播消息和多播消息也可以综合起来考虑,比如testGroup1有两个消费者,testGroup2有两个消费者——>**各有一个能够消费topic中的消息
查看消费者信息
1.查看当前主题下有多少消费者订阅
bin/kafka-consumer-groups.sh --bootstrap-server 82.157.198.247:9092 --list
2.查看消费组的详细信息
当前消费到的位置偏移量,已经消费完的偏移量,和剩余的消息数量(查看消费组的详细信息)
bin/kafka-consumer-groups.sh --bootstrap-server 82.157.198.247:9092 --describe --group testGroup
版权归原作者 Fairy要carry 所有, 如有侵权,请联系我们删除。