各个之间的关系其实很松散,并不是说不能操作

最佳实践

订阅关系一致

多个 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和消费组的关系相关推荐

  1. 【Kafka】Kafka topic 的消费组 出现 CURRENT_OFFSET 为 unknown

    本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.背景 1.背景 如下如,查询某个消费者的详情的时候出现CURRENT_OFFSET 为 u ...

  2. kafka专题:kafka的Topic主题、Partition分区、消费组偏移量offset等基本概念详解

    文章目录 1. kafka集群整体架构 2. kafka相关元素的基本概念 2.1 主题Topic和分区Partition 2.2 kafka消息存储在哪里? 2.3 分区副本 2.4 消费组和偏移量 ...

  3. Kafka生成者/消费组详解

    什么是 Kafka Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区.多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系 ...

  4. 聊聊Kafka(三)Kafka消费者与消费组

    Kafka消费者与消费组 简介 消费者 概念入门 消费者.消费组 心跳机制 消息接收 必要参数配置 订阅 反序列化 位移提交 消费者位移管理 再均衡 避免重平衡 消费者拦截器 消费组管理 什么是消费者 ...

  5. kafka消费组查看和删除

    生产环境监控发现kafka存在大量消费组 查看消费组信息: ./kafka-consumer-groups.sh --bootstrap-server ip:port --list 查看特定消费组信息 ...

  6. kafka消费组和分区关系详解

    消费组概念: Consumer Group 是 Kafka 提供的可扩展且有容错性的消费者机制.一个组里面有多个消费者实例,这些消费者共享一个ID,称为Group ID.组内的所有消费者协调在一起来消 ...

  7. 【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. ...

  8. 日志服务Python消费组实战(三):实时跨域监测多日志库数据

    解决问题 使用日志服务进行数据处理与传递的过程中,你是否遇到如下监测场景不能很好的解决: 特定数据上传到日志服务中需要检查数据内的异常情况,而没有现成监控工具? 需要检索数据里面的关键字,但数据没有建 ...

  9. 5.3.4 消费组稳定后,原有消费者重新加入消费组

    5.3.4 消费组稳定后,原有消费者重新加入消费组 协调者在处理消费者发送的"加入组请求"和"同步组请求"时,都会依赖于消费组当前的状态进入不同的分支流程.假设 ...

最新文章

  1. Oculus不准备出席E3了!这是要搞事情?
  2. linux 音频文件长度,Linux下压缩音频文件
  3. CC2540 串口0 通道2配置
  4. 飞鸽传书有多少用户?
  5. Java安全之数字证书
  6. 网页性能优化{雅虎[转载]}
  7. [转]关于java的动态代理
  8. STM32学习——矩阵键盘
  9. class CText{}; CText t; int const CText::*p; 什么意思?
  10. LaTeX插入参考文献手把手教学 | BibTeX教程
  11. 交换字符使得字符串相同
  12. java.lang.IllegalStateException: stream has already been operated upon or closed 异常
  13. poj1321棋盘问题
  14. 微信小程序换量心得—微量小程序联盟
  15. JAVA和MySQL实现公交管理_基于JSP公交管理系统的设计与实现(SSH,MySQL)(含录像)
  16. 合并两个有序链表(java算法)
  17. 制作一个手机APP软件需要拥有哪些资质证明?
  18. vue3、vite、pinia 快速入门
  19. dns 刷新本地DNS缓存的方法
  20. Eureka源码10-Server端(处理全量下载和增量下载请求)

热门文章

  1. 【OpenCV】Chapter10.色彩转换与图像绘制
  2. [剑指Offer]斐波那契数列、跳台阶、兔子数量问题(递归、非递归)(Java)
  3. Ubuntu 搜狗输入法无法调出问题解决备忘
  4. ADC0809转换器
  5. PLC控制技术与组态技术实训装置
  6. 史上最全小型水库雨水情测报及大坝安全监测系统实施方案-花1小时让您秒变专家
  7. echarts的基本用法——未完待续
  8. 同样协调个事情,为什么有人一说就通,有人一说就炸?(转,知乎)
  9. 2020年阴历三月初一 投资理财~有些大v要警惕
  10. 【硬件】常见芯片封装技术