apache-kafka - 扩展分区时的 Kafka 主题排序
问题描述
考虑您的生产者为系统用户创建消息,并且消息的顺序在用户级别很重要。
我的生产者,将消息添加到具有两个分区的主题中,并且我使用散列user_id
来将每个用户的所有消息放在同一个分区中以保证顺序。
如何在保持消息顺序的同时扩展系统并向主题添加更多分区?
Kafka如何处理分区前已经产生的消息?消费但未提交回 Kafka 以更新偏移量的消息会发生什么情况?
解决方案
1.在消费者客户端使用树集(有序集)缓存消息,保持1分钟(或更短);kafka只保证一个partition的顺序,我觉得producer也不能保证顺序。</p>
2.如果您不手动提交偏移量,在下一个获取请求中,将得到相同的消息。无论如何,在消费者客户端,您应该确保消息幂等性,即使您提交了偏移量。
推荐阅读
- javascript - React.JS 中的上下文概念在 React Native 中是否有效
- reactjs - 如何在可点击的卡片上创建两个 onclick 事件以做出反应
- python - django 应用程序中的每个 url 只呈现 home.html
- kubernetes - Kubernetes 可以缩小规模但避免断开用户连接吗?
- android - 滚动片段中具有灵活内容的Android布局问题
- google-analytics - 防止 gtag / 全局网站代码跟踪初始页面加载
- android - 如何使用 Hilt 在 Room TypeConvertors 中注入 Moshi/Gson?
- r - 使用 pre() ,Rulefit 包预测函数使用情况
- animation - SVG动画丢弃元素
- javascript - 世博会推送通知令牌如何工作?指数推送令牌[XYC]