kafka基础知识详解 深度解析Kafka的基础知识(5)
kafka基础知识详解

从头开始消费
这时,如果 topic 消息已经发送有一会了,但我们想要从头开始消费该怎么办呢?
只需要在开启消费者监听时,加一个 --from-beginning 命令即可:
# 从当前主题的第一条消息开始消费
./kafka-console-consumer.sh --bootstrap-server 172.16.30.34:49092 --from-beginning --topic hello-world
从第一条消息开始消费:

6. 消息收发相关
6.1 消息的存储和顺序性
生产者将消息发给 broker,broker 会将消息保存在本地的日志文件中。
在 config 文件中,日志目录为 /opt/usr/data,文件名为 主题-分区/00000000.log。
在存储和消费消息时,kafka 会用 offset 来记录当前消息的顺序:
- 消息存储有序:通过 offset 偏移量来描述消息的有序性;
- 消费有序:消费者消费消息时也是通过 offset 来描述当前要消费的消息位置。
6.2 消费组
1)创建消费组
当创建消费者时,我们可以为消费者指定一个组别(group)。
--consuemr-property group.id=testGroup:指定 group 名称为 testGroup
./kafka-console-consumer.sh --bootstrap-server 172.16.30.34:49092 --consuemr-property group.id=testGroup --topic hello-world
指定组别后,在消费消息时,同一个消费组 group 只有一个消费者可以收到订阅的 topic 消息。
2)查看消费组信息
我们可以通过 describe 命令查看消费组信息,命令如下:
# 消费组testGroup的详细信息
./kafka-consumer-groups.sh --bootstrap-server 172.16.30.34:49094 --describe --group testGroup
消费者信息如下:

我们需要关注的重点字段如下:
- CURRENT-OFFSET:最后被消费的消息偏移量(offset);
- LOG-END-OFFSET:消息总量(最后一条消息的偏移量);
- LAG:积压了多少条消息。
在同一个消费组里面,任何一个消费者拿到了消息,都会改变上述的字段值。
6.3 单播/多播消息
当创建消费组后,我们根据消费组的个数来判断消息是单播还是多播。这俩名词源于网络中的请求转发,单播就是一对一发送消息,多播就是多个消费组同时消费消息。
# 注意,当两个消费者都不指定消费组时,可以同时消费
./kafka-console-consumer.sh --bootstrap-server 172.16.30.34:49092 --topic hello-world
每次创建消费者时,如果没有指定消费组,则相当于创建了一个默认消费组,kafka 会为这些默认消费组生成一个随机的 group id。
所以多次创建默认消费组时,就是多播。
./kafka-console-consumer.sh --bootstrap-server 172.16.30.34:49092 --consuemr-property group.id=testGroup --topic hello-world
而单播消费时,只有一个消费组,所以 group_id 相同。
多播消费时,分别指定不同的消费组名称或者不指定消费组名称即可。
6.4 kafka消息日志文件
在 kafka 中,为了持久化数据,服务器创建了多个主题分区文件来保存消息,其中:
主题-分区/00000000.log日志文件里保存了某个主题下的消息;- Kafka 内部创建了 50 个分区
consumer-offsets-0 ~ 49,用来存放消费者消费某个 topic 的偏移量,这些偏移量由消费者消费 topic 的时候主动上报给 kafka。- 提交到哪个分区由 hash 后取模得出:hash(consumerGroupId)% 50;
- 提交的内容为:key =
consumerGroupId + topic + 分区号,value 为当前 offset 的值,为正整数。
在 Kafka 中,消费者的偏移量(consumer offset)是指消费者在分区中已经读取到的位置。消费者偏移量是由 Kafka 自动管理的,以确保消费者可以在故障恢复后继续从上次中断的位置开始消费。
如果大家在日常业务时想要跳过某些不消费的消息,或者重复消费,可以使用 Kafka 提供的 kafka-consumer-groups.sh 脚本,来查看和修改消费者组的偏移量。
7. 尾声
7.1 小结
本文介绍了 Kafka 以其高速、高性能、高可靠性和高可用性在大数据领域中占据重要地位。
并且从下载安装 Kafka 开始,到修改配置、服务启动,通过命令行验证其是否启动成功。
接着,我们详细介绍了 Kafka 的核心组件,包括 Broker、Producer、Consumer、Topic、Partition 和Replication。
然后特别强调了 Topic 的创建和管理,展示了如何创建 Topic、指定分区和副本数量,以及如何查看 Topic 的详细信息。我们还讲述了 Partition 分区的优势,如分离存储和提高性能,并解释了 Replication 副本的概念和重要性。
接着,我们展示了在 Kafka 中发送和消费消息的过程,然后讨论了消息存储、顺序性、消费组的创建和查看消费组信息,以及单播和多播消息的概念。
最后,文章提到了 Kafka 中消息日志文件保存的内容,包括消息本身和消息偏移量,以及如何修改消息偏移量的位置。
相信看了这部分内容,大家已经学会如何搭建自己的 kafka 消息队列了~
以上是IT袋网网关于kafka基础知识详解的全面方法讲解,希望为您起一个抛砖引玉袋作用,能解决您生活中的问题吧。
相关阅读
-
企业网站建设要多少钱 建企业网站需要的费用
小编为大家说一说企业网站建设要多少钱和建企业网站需要的费用的电脑小知识,具体详情如下: 搭建一个企业网站需要多少钱? 其实现在搭建企业网站比较透明了,你如果用模板搭建的话,
-
网站制作费用及后期运营方案 网络推广运营技巧
本文摘要:网站制作费用及后期运营方案和网络推广运营技巧的相关经验,接下来一起来看看吧。 网站定制开发 的费用,取决于你想做什么样的网站,需要哪些功能,要解决哪些问题。网站建
-
如何创建网站根目录 网站域名根目录查询
小编为你解答如何创建网站根目录和网站域名根目录查询的方法内容,接下来IT袋小编为大家介绍。 FTP是我们日常办公经常会用到的服务,一般在我们自己的电脑上就可以设置FTP站点,可供局
-
IIS Crypto设置TLS协议教程_IIS Crypto常见问题汇总
大家在使用 IIS Crypto服务器SSL证书优化设置工具 的时候,不知道怎么使用?因为软件是英文界面,很多网站长英语不是很好,使用起来就更是难上加难了,下面IT袋网IT袋小编针对大家的问题,


