6-MQ篇-2

简介: 本文详解RabbitMQ延迟队列(TTL+死信交换机/延迟插件)、消息过期设置(队列级与消息级)、死信成因及死信交换机绑定方式,并介绍其高可用机制:普通集群(元数据共享)与镜像集群(全量数据同步、主从容灾)。

07- RabbitMQ的延迟队列有了解过嘛 ?

RabbitMQ的延迟队列有二种实现方案 :

  1. 使用消息过期TTL + 死信交换机
  2. 使用延迟交换机插件

08- RabbitMQ如何设置消息过期 ?

RabbitMQ置消息过期的方式有二种 :

  1. 为队列设置过期时间, 所有进到这个队列的消息就会具有统一的过期时间
@Bean
public Queue ttlQueue(){
    return QueueBuilder.durable("ttl.queue") // 指定队列名称,并持久化
        .ttl(10000) // 设置队列的超时时间,10秒
        .deadLetterExchange("dl.ttl.direct") // 指定死信交换机
        .build();
}
  1. 为消息单独设置过期时间
@Test
public void testTTLQueue() {
    // 创建消息
    String message = "hello, ttl queue";
    // 消息ID,需要封装到CorrelationData中
    CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
    // 发送消息
    rabbitTemplate.convertAndSend("ttl.direct", "ttl", message, correlationData);
    // 记录日志
    log.debug("发送消息成功");
}

注意 :

  1. 队列过期和消息过期同时存在 , 会以时间短的时间为准
  2. RabbitMQ队列消息过期的机制是判断队列头部元素是否过期 , 如果队里头部消息没有到过期时间 , 中间消息到了过期时间, 这个消息也不会被自动剔除

09- 什么情况下消息会成为死信 ?

当一个队列中的消息满足下列情况之一时,就会成为死信(dead letter):

  • 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false
  • 消息是一个过期消息,超时无人消费
  • 要投递的队列消息满了,无法投递

10- 什么是死信交换机 ? 如何为队列绑定死信交换机 ?

死 信交换机和正常的交换机没有什么不同 , 如果一个包含死信的队列配置了dead-letter-exchange属性,指定了一个交换机,那么队列中的死信就会投递到这个交换机中,而这个交换机称为死信交换机

为队列绑定死信交换机 , 只需要设置队列属性 dead-letter-exchange即可

11- RabbitMQ的高可用机制有了解过嘛 ?

RabbitMQ的是基于Erlang语言编写,而Erlang又是一个面向并发的语言,天然支持集群模式。RabbitMQ的集群有两种模式:

普通集群:是一种分布式集群,将队列分散到集群的各个节点,从而提高整个集群的并发能力。

  • 会在集群的各个节点间共享部分数据,包括:交换机、队列元信息。不包含队列中的消息。
  • 当访问集群某节点时,如果队列不在该节点,会从数据所在节点传递到当前节点并返回
  • 队列所在节点宕机,队列中的消息就会丢失

镜像集群:是一种主从集群,普通集群的基础上,添加了主从备份功能,提高集群的数据可用性。

  • 交换机、队列、队列中的消息会在各个MQ的镜像节点之间同步备份。
  • 所有操作都是主节点完成,然后同步给镜像节点
  • 主宕机后,镜像节点会替代成新的主
目录
相关文章
|
1月前
|
人工智能
【钉钉会议 | 日程 Skill】让 Agent 真正帮你「把时间排进钉钉」
钉钉日程助手技能,打通“找人→约时→订室→发邀→跟进”全链路。支持查空闲、抢会议室、一键建会(含视频)、签到链接推送、周期例会自动排期,让AI真正驱动协作闭环。(239字)
339 15
|
4天前
|
存储 人工智能 自然语言处理
2026年阿里云新老用户最新优惠活动:云服务器活动、免费试用活动、AI产品活动参考
阿里云2026新老用户优惠活动涵盖三大板块。云服务器方面,轻量应用服务器低至38元/年,经济型e实例99元/年,u1实例199元/年,限时限量抢购。免费试用方面,新老用户可领最高200元试用点,AI产品免费提供7000万+大模型tokens及30+款产品体验,140+云产品最长12个月免费试用。AI产品方面,百炼Token Plan支持多模型切换、多档套餐;HappyHorse视频生成模型限时8折;OpenClaw一键部署低至9.9元起。此外还提供折扣券、学生无门槛券、算力补贴等多类优惠券,整体以"普惠基础设施+零成本体验+智能化赋能"策略,全面降低上云与用AI门槛。
2026年阿里云新老用户最新优惠活动:云服务器活动、免费试用活动、AI产品活动参考
|
14天前
|
人工智能 IDE API
阿里云百炼Coding Plan产品简介:支持模型、收费标准及购买和使用常见问题解答
阿里云百炼Coding Plan是面向开发者和团队的AI编程订阅服务,采用固定月费模式,Pro套餐200元/月提供9万次调用额度,整合千问、Kimi、GLM、MiniMax等顶级模型,全面兼容Claude Code、OpenClaw、Cursor等主流编程工具。额度采用5小时滚动恢复、每周及每月定期重置机制,兼顾开发连续性与成本可控性。其折算成本远低于按量计费,并通过多层级额度设计和华北2地域绑定有效防范欠费风险。适合日常代码生成、智能体开发及IDE插件集成等场景,是开发者以可预期预算拥抱AI编程的高性价比选择。
阿里云百炼Coding Plan产品简介:支持模型、收费标准及购买和使用常见问题解答
|
4天前
|
人工智能 Linux API
全平台零门槛:Win11、Mac、Linux 通用 Hermes Agent 安装教程
Hermes Agent是Nous Research开源的自进化AI助手(MIT协议),越用越懂你。支持多工具并行、自动记忆习惯,Python编写,v0.13.0版。兼容Win/macOS/Linux/Docker,国内用户可配清华镜像快速部署,需API密钥(如Kimi)。
|
29天前
|
监控 前端开发 中间件
【开源剪映小助手】调试与故障排除
本指南面向capcut-mate开发者,系统梳理Python后端(FastAPI)、Electron桌面端与React前端的调试方法,涵盖日志分析、IPC通信、异常处理、性能优化及常见故障排查,助力高效定位与解决运行时问题。(239字)
131 10
|
1月前
|
前端开发 JavaScript 安全
前端组件库——Radix UI知识点大全(三)
教程来源 https://rvtst.cn/ Radix UI 是面向现代前端的无样式、高可访问性UI原语库。支持Tree Shaking、轻量Portal、CSS动画优化;提供灵活主题定制(手写CSS/Tailwind/shadcn/ui);采用复合组件、`asChild`、受控/非受控模式及完整TS支持,赋能开发者自由构建高质量界面。
|
4天前
|
存储 关系型数据库 MySQL
7-事务控制篇-4
InnoDB支持事务、行级锁、外键及聚簇索引,具备崩溃恢复能力,是MySQL 5.5+默认引擎;MyISAM不支持事务与行锁,仅表级锁,存行数、用非聚簇索引,适合读多写少场景。
52 5
|
4天前
|
SQL 关系型数据库 MySQL
7-事务控制篇-7
本文简述MySQL三大核心要点:联合索引的最左匹配原则(从左依次匹配,范围查询后失效)、SQL执行顺序(FROM→JOIN→WHERE→GROUP BY→HAVING→SELECT→ORDER BY→LIMIT),以及常见索引失效场景(如LIKE前导%、OR单边无索引、隐式类型转换、函数/运算操作等),并指出EXPLAIN是诊断索引是否生效的关键工具。(239字)
92 2
|
4天前
|
存储 缓存 关系型数据库
7-事务控制篇-6
B树是自平衡多路搜索树,m阶B树中非叶节点关键字数=子节点数−1,所有叶子同层;B+树则仅内节点存索引、叶子存数据且链表相连,更优IO与范围查询;ACID通过undo/redo日志、锁机制等保障事务可靠。(239字)
55 3