记一次关于位移提交的问题回答

简介: 对 Kafka 来说,它提供了手动位移提交的机制,可以暴露出来让用户自行实现位移的提交,也就意味着你可以对分区的位移有控制权,这完全取决于你本身的实现逻辑。

今晚撸得正兴奋时,有个朋友突然问了我一个关于位移提交的问题,他最近刚接触 Kafka,在一篇博客中看到了这么一段话:


640.png


然后他给我举了不是那么常规的一个问题,如下:

640.png


我一看问题就觉得有点奇怪了,我知道这个朋友肯定是从 RocketMQ 过来的,因为在 RocketMQ 的位移提交机制,只能是提交已消费的最小位移:


640.png


具体我有一篇文章专门详细地分析了 RocketMQ 的位移提交机制:RocketMQ 位移提交源码分析


因此,RocketMQ 是不会发生上面所说的情况。


我觉得产生这种疑惑是因为之前使用 RocketMQ 的时候,由于不用自己处理位移提交,一切交给 RocketMQ 处理了,而恰好 RocketMQ 提交位移的机制只能提交未消费最小偏移量以杜绝消息的丢失,导致了这位朋友切换到 kafka 需要手动处理位移的时候,产生了以上的困惑。


对 Kafka 来说,它提供了手动位移提交的机制,可以暴露出来让用户自行实现位移的提交,也就意味着你可以对分区的位移有控制权,这完全取决于你本身的实现逻辑。


如果是按照例子的描述操作,此时分区最新消费偏移量就是 7 消息的位移,因为 Kafka 它本身并没有重试对列机制,基于这个前提下,如果这条消息消费失败了,要么你客户端捕捉到再进行重试消费,要么就丢弃,消费后面的消息,并提交消费位移,一切都往前看,要不然你会阻塞后面的消费。此时,4 消息就丢失了。


可以这么解决:


自己实现一个与 RocketMQ 位移提交机制的 TreeMap 来存储消息,位移作 key,每次消费完移除,提交位移的时候只提交最小位移就好了,比如这个例子,只能提交 3 消息的位移。

相关文章
|
2月前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
17天前
|
运维 Serverless Shell
函数计算产品使用问题之内置的ControlNet不生效,该怎么解决
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
存储 敏捷开发 Serverless
云效产品使用常见问题之代码扫描超过红线,不能在触发红线的时候进行通知如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
消息中间件 Kafka 数据处理
了解Kafka位移自动提交的秘密:避免常见陷阱的方法
了解Kafka位移自动提交的秘密:避免常见陷阱的方法
88 1
|
10月前
|
存储 算法 关系型数据库
对比两阶段提交,三阶段提交做了哪些改进?
在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。在关系型数据库中,由于存在事务机制,可以保证每个独立节点上的数据操作满足 ACID。但是,相互独立的节点之间无法准确的知道其他节点中的事务执行情况,所以在分布式的场景下,如果不添加额外的机制,多个节点之间理论上无法达到一致的状态。 在分布式事务中,两阶段和三阶段提交是经典的一致性算法,那么两阶段和三阶段提交的具体流程是怎样的,三阶段提交又是如何改进的呢?
65 0
|
2月前
|
C语言
《吉师作业》(2)之迟来的答案
《吉师作业》(2)之迟来的答案
37 0
好家伙!查看系统日志时我捕获了一只发生概率小于万分之一的Bug
在开始这篇文章之前想先说一句:如果一套系统暂时没问题,那只是因为它的并发量不够而已。 上周在查看系统日志时,发现了一条与众不同的日志。日志中有一半内容是正常的报文数据,而另一半内容是0x00这样的空数据
|
存储 机器学习/深度学习 自然语言处理
GPT-4的32k输入框还是不够用?Unlimiformer把上下文长度拉到无限长
GPT-4的32k输入框还是不够用?Unlimiformer把上下文长度拉到无限长
148 0
【PR】如何处理视频在最后时声音逐渐变小
【PR】如何处理视频在最后时声音逐渐变小
422 0
【PR】如何处理视频在最后时声音逐渐变小
极值点偏移问题的处理策略及探究(作业帮的毕冶老师总结)(上)
极值点偏移问题的处理策略及探究(作业帮的毕冶老师总结)(上)
271 0
极值点偏移问题的处理策略及探究(作业帮的毕冶老师总结)(上)