跳到主要内容

延迟交付

延迟交付允许您在消息发布到事件代理和该消息交付给消费者之间引入时间延迟。交付延迟时间是一个可配置的端点属性。这允许单条消息以不同的时间延迟交付给不同的消费者。

延迟交付可以帮助您构建无状态的事件驱动微服务。它可以用于在不同时间触发不同的微服务。例如,在电子商务应用程序中,单个处理订单事件可能会发送到四个不同的端点,这些端点由四个不同的微服务提供服务:

  • 一个履行服务,它向仓库发送指令,提取货架上的商品并打包订单。在处理此事件之前不需要时间延迟,因此该服务的输入队列不会配置交付延迟。
  • 一个感谢服务,它向客户发送感谢邮件。在处理此事件之前不需要时间延迟,因此该服务的输入队列不会配置交付延迟。
  • 一个促销服务,在收到订单后30分钟,向客户发送一封电子邮件,推荐一些基于客户所订购产品的附加购买。该服务的输入队列将配置为30分钟的交付延迟。
  • 一个评价体验服务,在收到订单后3小时,向客户发送一封电子邮件,提供一个链接到调查问卷,客户可以在其中评价他们的在线购物体验。该服务的输入队列将配置为3小时的交付延迟。

您还可以使用延迟交付来实现回退/重试设计模式。当微服务处理消息时,可能会遇到瞬时错误,需要将消息的处理推迟到稍后的时间。这可以通过让微服务将消息发布到延迟交付队列来轻松实现。一旦交付延迟时间过去,延迟交付队列将把消息送回微服务进行处理。

要了解如何使用Solace CLI配置延迟交付,队列请参见配置延迟交付,主题端点请参见配置延迟交付。

有关在PubSub+代理管理器中为队列配置延迟交付的更多信息,请参见为PubSub+云配置消息传递选项或为软件事件代理和设备配置消息传递选项。