微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kafka-邮件vs记录vs偏移量

如何解决Kafka-邮件vs记录vs偏移量

我是Streaming broker(例如Kafka)的新手,来自队列消息系统(例如JMS,Rabbit MQ)。

我从Kafka文档中了解到,消息以偏移量的形式存储在Kafka分区中,作为记录。消费者从偏移量中读取内容

消息和记录之间有什么区别[多个/部分消息构成记录吗?]

消费者从偏移量读取时,消费者是否有可能读取部分消息?消费者是否需要根据某种逻辑将这些亲笔消息串起来?

OR

1条消息= 1条记录= 1个偏移量

EDIT1:

出现此问题是因为“批处理大小”决定了应将多少字节的消息发布到borker。假设有2条消息,其中message1 = 100bytes和message2 = 200 bytes,并且batchsize设置为150bytes。这是否意味着消息1的100个字节和消息2的50个字节立即发送到代理?如果是,这两个消息如何以偏移量存储?

解决方法

在Kafka中,制作人消息记录(两个术语可以互换使用)发送到主题 。主题分为一个或多个分区,分布在Kafka群集中,该群集通常至少由三个经纪人组成。

消息/记录发送到领导者分区(该领导者属于单个经纪人),并与 Offset (补偿)相关联。偏移量是单调递增的数字标识符,用于唯一标识主题/分区内的记录,例如存储在记录分区中的第一条消息的偏移量为0,依此类推。

偏移量既用于标识消息在主题/分区中的位置,也用于标识消费者组的位置。

出于优化目的,生产者将按分区批量处理消息。当达到已配置的batch.sizedlinger.ms时,该批处理就被视为就绪。例如,如果您将batch.size设置为200KB,并且您发送了两条消息(150KB和100KB),则它们可能是同一批的一部分。但是生产者绝不会将单个消息分割成小块。

否,使用者无法阅读部分消息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。