MQ如何实现,消息必达到?
|
admin
2025年1月6日 10:44
本文热度 203
|
蓝色MQ核心集群由MQ-server,zk,db,管理后台web等一系列子系统组成。RecvCallback(bytes[] msg)MQ是一个系统间解耦的利器,它能够很好的解除发布订阅者之间的耦合,它将上下游的消息投递解耦成两个部分,如上述架构图中的箭头1和箭头2:MQ既然将消息投递拆成了上下半场,为了保证消息的可靠投递,上下半场都必须尽量保证消息必达。1. sender将消息发送给MQ-server;MQ上半场的123如果丢失或者超时,sender内置的timer会重发消息,直到收到3。如果重传N次后还未收到3,则SendCallback向业务方回调发送失败。5. reciever收到消息,处理业务逻辑,将ACK发送给MQ-server;
6. MQ-server收到ACK,将之前已经落地的消息删除,流程结束;MQ下半场的456如果丢失或者超时,MQ-server内置的timer会重发消息,直到收到5并且成功执行6。2. 指数退避,先隔x秒重发,2x秒重发,4x秒重发,以此类推;1. MQ是系统之间的解耦利器,它能解除消息发送方与接收方的直接耦合;消息重发可能导致收到重复的消息,如何进行架构幂等性设计,下次撰文另述。https://www.geeksforgeeks.org/message-queues-system-design/
==全文完==
该文章在 2025/1/6 10:44:29 编辑过