组件系列之RabbitMQ
官网: https://www.rabbitmq.com/getstarted.html
1.四种交换机
TODO...
2.消费者获取消息方式:推 和 拉
拉取:每次拉取一条,循环拉取需要的条数在批处理;
3.集群模式:普通模式和镜像模式
镜像模式,消息广播流程如下: (1)Master 节点发出消息,顺着镜像队列循环列表发送; (2)所有 Slave 节点收到消息会对消息进行缓存(Slave 节点缓存消息用于在广播过程中,有节点失效或者新增节点,这样左侧节点感知变化后会重新将消息推送给右侧节点); (3)当 Master 节点收到自己发送的消息后意味着所有节点都收到了消息,会再次广播 Ack 消息; (4)Ack 消息同样会顺着循环列表经过所有 Slave 节点,通知 Slave 节点可以清除缓存消息; (5)当 Ack 消息回到 Master 节点,对应消息的广播结束。 ————————————————
4.消息存在持久化
消息经过交换器进入队列就可以完成消息的持久化,但如果消息在没有到达broker之前出现意外,那就造成消息丢失
5.集群节点:内存节点和磁盘节点(持久化保存集群中的配置信息)
6.死信队列
(1)消息被拒绝(basic.reject 或者 basic.nack),并且requeue=false;
(2)消息的过期时间到期了; (3)队列长度限制超过了。
7.延迟队列
根据消息TTL或队列的TTL, 过期后通过死信转发器,路由到指定的队列
8.RPC模式
原理:2个队列,(互相订阅)Client通过一个队列推送给Server,Server将结果通过一个回调队列推送给Client,实现通信
9.高级特性
RabbitMQ高级特性-消息可靠性投递
RabbitMQ高级特性-幂等性保障
RabbitMQ高级特性-Confirm确认消息
RabbitMQ高级特性-Return消息机制
RabbitMQ高级特性-消费端自定义监听
RabbitMQ高级特性-消费端限流
RabbitMQ高级特性-消费端ACK与重回队列
RabbitMQ高级特性-TTL队列/消息
RabbitMQ高级特性-死信队列(DLX)
10.确认模式
发送方确认模式、消费房确认模式
11.消息的顺序性保证
推送端:(变动日志表,只记录该表变动的EID等简单信息)按表分组,再按操作,依次推增加、修改、删除记录
消费端:一个queue只对应一个consumer,一次只消费一条消息,手动确认模式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
2018-09-04 C#枚举中的位运算权限分配浅谈