kafka消息顺序与重复

38 篇文章 13 订阅 ¥29.90 ¥99.00
本文详细介绍了Kafka中的消息顺序,包括全局顺序和局部顺序,并提供了注意事项,如消息重试可能导致的顺序问题和解决方案。同时,讨论了Kafka消息重复的现象,分析了原因并提出了生产端和消费端避免重复的策略。最后,文章探讨了Kafka时间轮的实现原理,阐述了时间轮如何处理延迟操作,以及其高效的时间推进机制。
摘要由CSDN通过智能技术生成

kafka消息顺序

我们知道,kafka是一个高性能、分布式容错的消息发布-订阅系统,现在kafka也能处理流数据了。多个生产者在往kafka发送数据的时候,消息的顺序是不能保障的,也就是无序的。

有些场景,比如在用maxwell解析mysql的binlog日志的时候,发送到kafka,后面解析,通常会用jdbc的方式,将数据保存到其它系统,比如hive或者hbase等。这时候,消息的顺序是很重要的,对于一条数据,应该是先有insert,再有updae / delete,顺序反了就不行。

kafka的顺序,包括全局顺序与局部顺序。

全局顺序

全局顺序就目前的应用范围来讲,可以列举出来的也就限于binlog日志传输,如mysql binlog日志传输要求全局的顺序,不能有任何的乱序。这种的解决办法通常是最为保守的方式:

  1. 全局使用一个生产者
  2. 全局使用一个消费者(并严格到一个消费线程)
  3. 全局使用一个分区(当然不同的表可以使用不同的分区或者topic实现隔离与扩展)

局部顺序

其实在大部分业务场景下,只需要保证消息局部有序即可,什么是局部有序?局部有序是指在某个业务功能场景下保证消息的发送和接收顺序是一致的。如&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值