RocketMQ生产者组topic和消费组的关系
各个之间的关系其实很松散,并不是说不能操作
最佳实践
订阅关系一致
多个 Group ID 订阅了多个 Topic,并且每个 Group ID 里的多个消费者实例的订阅关系保持了一致。
消费幂等
最终一致性保证数据一致性,如果不幂等,将导致数据错乱
topic和tag的关系
topic可以是一级过滤关系 tag是二级过滤关系
使用:
业务消息往往推荐做topic 的 一级区分
tag往往用于过滤后续的消息
例如: 飞跃交易消息 和 飞跃物流消息 topic
飞跃化妆品下单消息 和 飞跃电器下单消息 tag
消费模式
集群消费和广播消费
推荐集群消费
可以用集群消费模拟广播消费,例如创建多个GroupID模拟广播消费
问题解释:
订阅关系不一致
同一消费组下不同消费者订阅关系
导致消息丢失
关键的代码: ConsumerGroupInfo.updateSubscription(final Set subList) 关键代码: if (sub.getTopic().equals(oldTopic)) { exist = true; break; } … it.remove(); updated = true; 这里其实是做了一个检查,做这个检查的默认前提是一个consumerGroup下面的订阅消息是一样的,就是每个consumer注册的subscription应该是一样的,如果不一样就把之前注册的删除
未做幂等或者没做好
1.在TCC中,发送一条订单过期取消的消息,由于未做幂等导致,导致复活该订单失败(其实本身不推荐这样,推荐的操作是,用户去查询失效的订单时,选择再来一单即可,而不是复活订单)
2.仅仅通过redis的分布式锁来做幂等:原有业务是查询缓存,然后修改缓存,再落库
但是在查询缓存时由于缓存失效,导致去数据库查询缓存,结果超过了红锁的查询时间(10分钟),导致该消息的幂等操作失效,由其他消息修改了原有数据,导致错乱
参考:
https://www.jianshu.com/p/2838890f3284
https://help.aliyun.com/document_detail/95837.html
RocketMQ生产者组topic和消费组的关系相关推荐
- 【Kafka】Kafka topic 的消费组 出现 CURRENT_OFFSET 为 unknown
本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.背景 1.背景 如下如,查询某个消费者的详情的时候出现CURRENT_OFFSET 为 u ...
- kafka专题:kafka的Topic主题、Partition分区、消费组偏移量offset等基本概念详解
文章目录 1. kafka集群整体架构 2. kafka相关元素的基本概念 2.1 主题Topic和分区Partition 2.2 kafka消息存储在哪里? 2.3 分区副本 2.4 消费组和偏移量 ...
- Kafka生成者/消费组详解
什么是 Kafka Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区.多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系 ...
- 聊聊Kafka(三)Kafka消费者与消费组
Kafka消费者与消费组 简介 消费者 概念入门 消费者.消费组 心跳机制 消息接收 必要参数配置 订阅 反序列化 位移提交 消费者位移管理 再均衡 避免重平衡 消费者拦截器 消费组管理 什么是消费者 ...
- kafka消费组查看和删除
生产环境监控发现kafka存在大量消费组 查看消费组信息: ./kafka-consumer-groups.sh --bootstrap-server ip:port --list 查看特定消费组信息 ...
- kafka消费组和分区关系详解
消费组概念: Consumer Group 是 Kafka 提供的可扩展且有容错性的消费者机制.一个组里面有多个消费者实例,这些消费者共享一个ID,称为Group ID.组内的所有消费者协调在一起来消 ...
- 【Kafka】kafka 获取消费组 详情 Exiting due to KeeperErrorCode = NoNode for /consumers/group
文章目录 1.背景 3.场景再现2 4.场景再现3 5.场景再现4 6.场景再现6 1.背景 想看一个kafka的topic的消费组信息. [lcc@lcc ~/soft/kafka/kafka_2. ...
- 日志服务Python消费组实战(三):实时跨域监测多日志库数据
解决问题 使用日志服务进行数据处理与传递的过程中,你是否遇到如下监测场景不能很好的解决: 特定数据上传到日志服务中需要检查数据内的异常情况,而没有现成监控工具? 需要检索数据里面的关键字,但数据没有建 ...
- 5.3.4 消费组稳定后,原有消费者重新加入消费组
5.3.4 消费组稳定后,原有消费者重新加入消费组 协调者在处理消费者发送的"加入组请求"和"同步组请求"时,都会依赖于消费组当前的状态进入不同的分支流程.假设 ...
最新文章
- Oculus不准备出席E3了!这是要搞事情?
- linux 音频文件长度,Linux下压缩音频文件
- CC2540 串口0 通道2配置
- 飞鸽传书有多少用户?
- Java安全之数字证书
- 网页性能优化{雅虎[转载]}
- [转]关于java的动态代理
- STM32学习——矩阵键盘
- class CText{}; CText t; int const CText::*p; 什么意思?
- LaTeX插入参考文献手把手教学 | BibTeX教程
- 交换字符使得字符串相同
- java.lang.IllegalStateException: stream has already been operated upon or closed 异常
- poj1321棋盘问题
- 微信小程序换量心得—微量小程序联盟
- JAVA和MySQL实现公交管理_基于JSP公交管理系统的设计与实现(SSH,MySQL)(含录像)
- 合并两个有序链表(java算法)
- 制作一个手机APP软件需要拥有哪些资质证明?
- vue3、vite、pinia 快速入门
- dns 刷新本地DNS缓存的方法
- Eureka源码10-Server端(处理全量下载和增量下载请求)