前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于 kafka 消息的顺序问题一二

关于 kafka 消息的顺序问题一二

作者头像
WindWant
发布2021-05-20 14:27:59
1.1K0
发布2021-05-20 14:27:59
举报
文章被收录于专栏:后端码事后端码事

顺序就像就是 12345,任何 12354、12543、51234等都不行。

因为是 mq,所以必然涉及三个主体:发送方、消息服务器、消费方。

一、kafka 消息服务器

kafka brokers 顺序接收客户端请求,将消息顺序追加到 partition 尾部,kafka 能保证单个分区里消息的顺序性。

二、发送方

由第一点可知,我们只要把消息按顺序发送到同一个分区就好了。但这里也存在几个问题:

怎么保证要发送的消息的顺序性?

使用唯一的一个全局 producer

怎么把顺序的消息发送到同一个分区?

基于特定的分区策略将需要保障顺序的消息路由到特定的分区

严格的消息顺序?

配置:在接收到服务器响应之前能够发送多少消息 max.in.flight.requests.per.connection = 1。

或者

max.in.flight.requests.per.connection <= 5

+

幂等:enable.idempotence = true

三、消费方

保证需要顺序消费的消息由同一个线程消费。

开辟一定数量的工作线程,分别固定消费不同类别的顺序消息。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-05-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、kafka 消息服务器
  • 二、发送方
    • 怎么保证要发送的消息的顺序性?
      • 怎么把顺序的消息发送到同一个分区?
        • 严格的消息顺序?
        • 三、消费方
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档