MQ相关问题

2023-11-03

ActiveMQ 功能完善,性能相对差,社区文档很久不更新了,丢失可能低 万级QBS,毫秒延迟,主从高可用
RabbitMQ 基于erlang,扩展性差,社区活跃(中小企业用) 万级QBS,微妙延迟,主从高可用
RocketMQ 阿里开源,定制开发,社区相对活跃,参数化配置可做到0丢失,接口简单(非jms) 10w级QBS,毫秒延迟,分布式
Kafka 大数据类的系统做实时计算或者日志采集,功能较少(核心) 10w级QBS,毫秒延迟,分布式

苏宁 WindQ (HornetQ 的定制版) 在linux平台上直接调用操作系统的AIO

作用:
1,消峰(发送消息,慢慢处理请求)
2,异步(异步调用系统)
3,解耦(下发数据,其他系统选择性,消费)

问题:
1.增加系统复杂度和维护成本
2.消息重复消费(幂等性)
消息重复消费的主要原因在于回馈机制(RabbitMQ是ack,Kafka是offset)
消费者消费完消息后回复ack, 但是刚消费完还没来得及提交系统就重启了,这时候上来就pull消息的时候由于没有提交ack或者offset,消费的还是上条消息。
解决:
1.数据库唯一约束
2.redis 存记录标志,处理过就忽略
消息发送者发送消息时携带一个全局唯一的消息id
消费者获取消费后先根据id在redis/db中查询是否存在消费记录
如果没有消费过就正常消费,消费完毕后写入redis/db
如果消息消费过就直接舍弃

3.消息丢失(可靠性)
1).生产者丢失:发送消息的时候半途丢了,开启MQ事务机制,吞吐量下降,设置合理的重试次数
代码中增加消息表,定期扫描表,重试发送
发送给消息也要有生产者确认机制
2).MQ丢失:开启MQ的持久化
3).消费者丢失:收到消息没来得及消费宕机了,ack机制,自动确认消息改为手动确认
手动ack还有个问题,业务处理过了,断了,没有ack,这个时候就要设计业务代码为幂等性,防止重复处理

4.如何保证消息顺序性
在这里插入图片描述

5.如何处理消息积压

消费者宕机
消费能力不足
发送者流量太大

1)临时紧急扩容

在这里插入图片描述

2)如果允许,则丢弃消息

https://blog.csdn.net/qq_43298198/article/details/106019759?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242

rabbitmq 延时队列
第一种
在这里插入图片描述

第二种 topic
在这里插入图片描述

在java代码中MyMqConfig中创建2个队列,2个绑定和1个交换机,@Bean注入

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

真正的解锁库存业务

在这里插入图片描述

在这里插入图片描述

@EnableRabbit
加配置文件
加自定义配置

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MQ相关问题 的相关文章

随机推荐

  • 安装mongoDB出现服务启动失败--服务没有响应控制功能--Status:Service ‘MongoDB Server (MongoDB)‘ (MongoDB) failed tostart.

    下载了4 4 20版本的MongoDB mongodb windows x86 64 4 4 20 signed msi 在安装完成后 参考 61条消息 window 下安装 mongodb 详细步骤 window安装mongodb 极客飞
  • 2022.05面试总结

    前言 今年四月份正在办公室高高兴兴的写bug 突然就被通知毕业了 传说中的天选打工人 于是开始了五月份找工作的苦逼生活 总体上来说市场比较冷淡 前后面试了20多家 只拿到了4个offer 整体涨幅在30 左右 话说回来自从2020年之后 疫
  • Verilog的结构化、数据流、行为级描述方式

    Verilog的结构化 数据流 行为级描述方式 概述 verilog通常可以使用三种不同的方式描述模块实现的逻辑功能 结构化 数据流 行为描述方式 结构化描述方式 是使用实例化低层次模块的方法 即调用其他已经定义过的低层次模块对整个电路的功
  • 为什么采用PID算法?增量式PID定位方式参数如何整定?

    PID控制能满足相当多的工业对象的控制要求 尤其适用于可建立精确模型的确定性控制系统 由于其算法简单 鲁棒性强和可靠性高适合多数控制系统中 可以结合采用自适应 模糊 滑模 神经网络等智能控制以增强控制性能和适应环境的能力 首先从理论原则出发
  • MFC 如何改变对话框的默认背景颜色

    下面介绍三种方法 实现改变对话框的默认背景颜色 1 可以在CLotteryApp InitInstance 设置更新对话框的背景颜色 调用SetDialogBkColor RGB 160 32 240 即可以改变背景颜色 注意这里绘制的颜色
  • chrome 控制台 base64加密解密

    1 视界 2 背景 因为在客户机器 要查询base64的解密信息 但是因为内网无法使用网络 只能拷贝软件本想查询插件 后来发现谷歌支持解密 3 方法 在chrome控制台上可以直接使用函数做base64加密解密 用法 加密 btoa ord
  • plt.pie()参数解释

    label 设置各部分标签 explode 设置某一块离开中心距离 autopct 设置圆里面的文本 shadow 设置是否有阴影 labeldistance 设置标签文本距圆心位置 数字表示多少倍半径 startangle 起始角度 默认
  • 性能小课堂:Jmeter录制手机app脚本

    环境准备 1 手机 2 wifi 3 Jmeter 具体步骤 1 启动Jmeter 2 测试计划 中添加 线程组 3 工作台 中添加 HTTP代理服务器 4 配置代理服务器 Global Settings下面的端口配置 9988 HTTPS
  • 抖音企业号无需API开发连接AI图像生成,打造AI智能绘图助手

    1 抖音用户使用场景 作为抖音企业号的运营人员 我们一直在寻找新的方式来增强我们与用户之间的互动 最近 我们发现了AI绘图技术可以根据用户需求和指令自动创建图片 无需人为干预 这为我们节省了人力和时间 因此 我们考虑将AI绘图模型接入到抖音
  • Waves 14 Complete对Mac和Windows系统的最低要求

    Waves 14 Complete是一款功能齐全的音频编辑软件 适用于音乐制作 音频工程和声音设计等领域 它提供了一系列强大的工具和效果 帮助用户在音频处理过程中实现专业水平的效果和混音 Waves 14 Complete包含了多个实用的插
  • Qt窗体边框阴影的绘制

    setWindowFlags Qt FramelessWindowHint Qt WindowSystemMenuHint setAttribute Qt WA TranslucentBackground setMouseTracking
  • Python与Xpath--二手房房价数据爬取

    一 写在开头 本文在 城市感知计算 代码的基础上进行了修改和调整以更符合自己的需求和习惯 在此感谢作者的分享 其次我想说的是如果有同志看见了我的文章并且想要尝试实现的话 希望能 合理 温柔 地爬取数据 给网站减少访问压力 他好我也好 最好是
  • C++设计模式---命令模式

    文章目录 命令模式的场景 命令模式的定义 命令模式的场景 现在需要设计这样的场景 厨师类负责做菜 比如红烧鱼 锅包肉等菜 而顾客一般不能直接命令厨师做哪些菜 而是需要写一个便签 写上需要做哪些菜 然后交给厨师来做 include
  • 词法分析器的生成器——lex/flex

    文章目录 1 词法分析器和语法分析器 2 flex 1 使用 2 文件格式 3 条件模式 了解 1 词法分析器和语法分析器 词法分析器 将文本分解成token 语法分析器 判断token是否符合规定的语法规则 可以自己实现词法 语法分析器
  • 【2023】华为OD机试真题Java CC++ Python JS Go-题目0259-字符串划分

    题目0259 字符串划分 题目描述 给定一个小写字母组成的字符串 s s s 请找出字符串中两个不同位置的字符作为分割点 使得字符串分成的三个连续子串且子串权重相等 注意子串不包含分割点 若能找到满足条件的两个分割点 请输出这两个分割点在字
  • 输入序列号_2021微信红包封面序列号领取大全最新(附获得方式)

    感谢大家的阅读 喜欢小编为你精心编辑的文章吗 欢迎留言评论 小编都会虚心接受的 你们是小编前进的动力哦 每天一点点进步 分享彼此的欢乐 如果喜欢就关注订阅吧 也不要忘记点在看哦 亲 微信红包封面图是在节日中大家都需要的一个工具 现在有了越来
  • 《兴森大求真》重磅来袭!先进电子电路可靠性大揭秘

    兴森实验室 让可靠看得见 前言介绍 芯片性能不断增强 先进封装不断演进 导致封装基板信号互连的IO数量和密度不断增加 PCB的层数增加 孔间距减小 厚径比提升 可靠性的挑战正在加剧 电路板作为各种电子元器件的载体和电路信号传输的枢纽 决定了
  • 带小手的文档怎么复制

    如果我们需要在网上复制想要的内容 很多专业的学术文章是不能直接复制的 请慢慢往下看 一 普通需要会员的文档 我们可以通过f12开发者工具复制 如 这是一种常见的复制文档方式 但是需要一句一句的复制 二 通过网络爬虫 不过需要有较强的编程能力
  • windows关闭端口方法

    在介绍各种端口的作用前 这里先介绍一下在Windows中如何关闭 打开端口 因为默认的情况下 有很多不安全的或没有什么用的端口是开启的 比如Telnet服务的23端口 FTP服务的21端口 SMTP服务的25端口 RPC服务的135端口等等
  • MQ相关问题

    ActiveMQ 功能完善 性能相对差 社区文档很久不更新了 丢失可能低 万级QBS 毫秒延迟 主从高可用 RabbitMQ 基于erlang 扩展性差 社区活跃 中小企业用 万级QBS 微妙延迟 主从高可用 RocketMQ 阿里开源 定