跳到主要内容

在PubSub+ JCSMP API中发布保证消息

使用 PubSub+ JCSMP API 的客户端应用程序可以发布保证消息,即客户端应用程序为队列或主题目的地分配持久或非持久传递模式的消息。

要使客户端在会话中发布保证消息,需要一个到主机事件代理的生产者流。对于 PubSub+ JCSMP API,当获取 XMLMessageProducer 时会创建一个生产者流。

如果客户端断开连接,其发布者流将在客户端未在三分钟内重新连接的情况下自动过期。

发布的保证消息具有持久性,因为它们被写入到事件代理上配置的以下类型的端点之一的持久存储中:

  • 与消息的队列目的地匹配的队列。
  • 被分配了与消息的主题目的地匹配的主题订阅的队列。
  • 被分配了与消息的主题目的地匹配的主题订阅的主题端点。

有关端点的详细信息以及如何创建它们,请参阅在 PubSub+ JCSMP API 中接收保证消息。

当消息的主题目的地与端点设置的主题订阅之间存在匹配时,以直接传递模式发布的消息也可以被写入到端点。在这种情况下,当消息被写入到端点时,它被赋予非持久传递模式,以便客户端可以通过其已建立的保证消息流消费该消息。

消费客户端可以通过创建到该端点的保证消息流来绑定到端点,从而接收保证消息。有关详细信息,请参阅在 PubSub+ JCSMP API 中接收保证消息。

下图展示了发布和接收保证消息的过程。

发布保证消息

img

相关事件代理配置信息

为了使客户端能够向消息 VPN 发布消息,事件代理必须启用保证消息传递和消息池化。此外,必须为客户端分配适当配置的客户端配置文件和/或访问控制列表(ACL)配置文件:

  • 要发布保证消息,客户端必须被分配启用了 allow‑guaranteed‑message‑send 参数的客户端配置文件。
  • 要允许客户端发布消息到主题(或仅发布到特定的一组主题),必须为客户端分配具有适当访问控制的 ACL。