我对rabbitmq的理解(第一次)

众所周知rabbitmq是一个中间件,作用呢是帮助系统高效处理消息,解决了传统项目复杂业务(多个非核心操作)串行同步,带来的响应时间长,容错能力低,耦合性高。它实现了AMQP协议高级消息队列协议。

如何解决这三个问题(异步处理机制,消息重试机制,设计解耦)

异步处理机制(系统处理完核心操作就给使用者反馈触发生产者将非核心操作(失败不会影响业务核心功能),发送到消息队列,让消费者根据自身情况处理)

消息重试机制(当消息发送给消费者,消费者迟迟不返回ACK消息,则重复几次还是没有->死信队列人工处理)

设计解耦(消费者错误或修改不影响其他角色)

主要包含 生产者 , 消费者 ,交换机 ,消息队列 四个角色展开活动

消息的传递过程 生产者->交换机->消息队列->消费者

实际业务使用 生产者产生消息并发送给交换机,交换机根据消息中的路由键来判断发送给哪一个消息队列,消费者监听消息队列从而获取消息并且消费消息。

那么其中关撬有很多了,消息在传递过程中丢失了咋办?消息队列占满了咋办?消息一直在消息队列中不管是不是被消费?消费者获取到信息消费失败咋办?rabbitmq容器宕机了咋办?

第一个问题:如何识别消息被接收成功以及触发重新发送 主要是这个 生产者->交换机->消息队列过程

第二个问题:消息队列的删除机制

第三个问题:不是,消息被消费完成,消费者会给队列发送ACK消息,队列收到该消息把对应的消息删除

第四个问题:消息重试,当队列迟迟没有收到ACK消息,重新发送消息给指定消费者

第五个问题:消息以及交换机配置信息持久化

这几个问题就是rabbitmq,设计的核心所在

注意消费者不是系统的使用者,而是监听和处理消息的一个类。

使用者只是业务的触发者。

估计错误有很多记录

相关推荐
Francek Chen3 小时前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Gl�ria5 小时前
Hadoop/YARN 集群缩容:下线DN节点
大数据·hadoop·分布式
吉甫作诵6 小时前
Kafka 集群安装与运维实战:消费组排查、Offset 重置与副本重分配
大数据·运维·分布式·kafka·消息队列
imDwAaY7 小时前
消息队列四大核心问题:顺序性、幂等性、可靠性与一致性
学习·kafka·rabbitmq
是Dream呀1 天前
Harness 工程:让 Agent 真正把任务做完
人工智能·分布式·缓存·agent
yt004yt1 天前
绿岛数字化平台搭建:VOCs 监测与能碳数据一体化方案
大数据·分布式
天天喝旺仔1 天前
分布式服务容错实战:用 Sentinel 实现限流、熔断与降级
分布式·微服务·云原生·sentinel
手握风云-1 天前
一条消息的旅程:RabbitMQ 学习与实践(五)
rabbitmq·java-rabbitmq
lisanmengmeng1 天前
分布式追踪与监控:Skywalking(三)
分布式·skywalking
会周易的程序员2 天前
5 节点边缘冗余方案(上):基于 aiRaft 的物联网高可用控制面设计
c++·分布式·物联网·raft·iot·共识