【kafka专栏】如何保证消息数据的有序性,互联网大厂面试必问的JVM底层原理

本文内容主要是说明kafka如何保证消息的有序性?首先我们需要先回顾若干个重要的概念

在这里插入图片描述

  • kafka生产者缓冲区包含若干个缓冲队列,每一个缓冲队列对应kafka服务端的一个主题的一个分区。

  • 缓冲队列的数据结构是Deque,是一个双端队列,一端放入数据,一端取出数据。

二、如何实现消息的有序性?


其实看了上面的这个图,kafka如何保证消息的有序性就呼之欲出了

  • 在生产者中的双端缓冲队列中,消息是可以保证顺序的,一端进一端出。

  • 每一个双端队列对应kafka服务端的一个主题的分区,所以kafka是可以保证消息数据在一个分区内的有序性

如果我们希望消息是有序被发送的并且是有序被处理的,需要满足以下场景中的一个:

  • 某个主题只有一个分区,那么这个主题的所有数据"发送"和“消费”都是有序的。这种方式应用场景比较窄,针对数据量比较小的主题可以考虑创建主题时只包含一个分区。

  • 某个主题有多个分区

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习࿰

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值