采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
用topic+partition+offset做主键,那怎么知道不同partition之间的先后顺序呢?如果我后面推送的数据先消费了,后消费的数据是不是更早的数据?这样不就乱掉了吗
纯靠kafka的时间是无法保证全局有序,只能保证单分区有序。但是可以根据产生消息对象内部的时间(即生产消息时写入的EventTime),然后通过watermark来批量消费,保证窗口有序。但是难免会有特殊情况导致消息太晚到达,对于超出太多的消息(lateness),收集到数据库进行一些祢补的处理。
flink是能保证状态的一致性的,因为通过checkpoint能完成,完成之后会提交到operatorstate中,如果有挂的,那么就会从kafka中进行重新消费
后面进来的数据先消费是非常有可能的,网络抖动啥的,很可能会导致消息乱序问题,那就需要结合wm来进行处理
登录后可查看更多问答,登录/注册
已经在做大数据,Flink助力轻松提薪;尚未入行,让你弯道超车
1.4k 9
1.2k 7
944 6
946 6
1.1k 5
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号