理解直接消息传递与保证消息传递
学习目标
解释事件驱动架构的关键组件与模式。
区分直接消息传递与保证消息投递。
现代事件代理支持直接消息传递与保证消息传递。
消息传递主要有两种方式:直接消息传递(Direct Messaging)与保证消息投递(Guaranteed Message Delivery)。
直接消息传递面向这样的应用:需要处理高消息速率并要求低延迟,同时能够容忍偶发的消息丢失。在该模式中,客户端直接订阅主题。如果连接丢失,消息不会被存储,这意味着它们可能被丢弃。此外,也不存在投递确认机制。
另一方面,保证消息投递面向需要消息永久存储与可靠投递的应用。在该方式中,主题订阅绑定到特定端点。消息一旦被确认,就不会丢失。消息会一直保留直到被消费,并且投递会被显式确认。
持久性与耐用性
持久性(Persistence)针对消息,耐用性(Durability)针对端点。
持久性:
如果消息存储在非易失性内存中,则消息是持久的。
当采用“Persistent Delivery Mode = Persistent”存储,或订阅持久端点时,即完成存储。
持久消息会被确认。
耐用性:
持久端点独立于消费者运行。
即使代理发生故障,队列消息也会保留。
临时队列不是持久的,消费者注销后消息会被删除。
延伸阅读
事件驱动架构模式 :概述各种事件驱动架构(EDA)模式、其用例以及实现事件驱动系统的最佳实践。
直接消息 :说明 SAP Advanced Event Mesh 中的直接消息传递,包括消息如何在不持久化的情况下发送、路由和接收。
保证消息 :关于保证消息传递的详细文档,确保 SAP Advanced Event Mesh 中的消息持久性、可靠性与投递确认。
本课其余配图

