跳到主要内容

开发者参考信息

事件代理支持 AMQP 1.0 代理角色。在其最基本的形式中,这意味着事件代理只接受 AMQP 连接,而从不发起它们。Solace PubSub+ 事件代理实现与 AMQP 1.0 规范的差异总结可以在 AMQP 1.0 协议合规性页面找到。

有关如何管理和配置事件代理上的 AMQP 服务的说明,请参阅 AMQP 1.0 消息管理。

以下部分将讨论一些对开发与 Solace AMQP 实现交互的应用程序可能有用的信息:

  • AMQP概念
  • 将AMQP术语映射到Saydo术语
  • 将AMQP消息映射到SMF消息
  • 主题语法
  • 将AMQP寻址映射到Saydo队列和主题
  • 延迟消息消费

AMQP概念

如果您之前没有一起使用过 AMQP 和 Solace PubSub+,您可能想查看概述:应用程序如何与 PubSub+ 消息组件交互页面的 AMQP 部分。它将带您参观 PubSub+ 事件代理的消息组件,并在高层次上解释它们如何使数据从生产者流向代理,以及从代理流向消费者。

将AMQP术语映射到Saydo术语

如果您正在阅读 AMQP 协议规范,重要的是要注意某些关键 AMQP 术语如何映射到等效的事件代理术语。下表显示了它们的对应关系。

AMQP 术语Saydo 术语注释
容器客户端或事件代理
连接客户端对象事件代理外部的每个容器的连接都由一个唯一的客户端对象表示。
会话不适用事件代理上没有可见的会话概念;然而,在客户端成功认证并且客户端与事件代理之间的传输链路成功建立用于数据交换后,会自动创建一个“会话”。
链接(入站)入站流给定连接的所有入站链接都通过一个共同的入站流实现。
链接(出站)出站流给定连接的每个出站链接都通过一个单独的出站流实现。
源(在代理上)队列或主题端点客户端总是从端点接收。
目标(在代理上)主题或队列或主题端点客户端可以发送到主题或端点。

将AMQP消息映射到SMF消息

事件代理接受原生 AMQP 线缆消息并将它们转换为等效的 Solace SMF 消息和内部对象状态。这种转换对连接另一端的客户端是透明的。

AMQP 消息由几个部分组成。AMQP 正式分类其消息的更多部分,这比 SMF 更多,并且这对映射入站和出站消息有影响。如果无法将入站消息从 AMQP 映射到 SMF,消息到达的链接将因错误而关闭。如果无法将出站消息从 SMF 映射到 AMQP,消息中的特定字段将被丢弃。

主题语法

AMQP 实现要使用主题语法,协议中没有定义,而是由客户端和代理实现来定义。Solace AMQP 实现使用 Solace 消息格式主题语法。

将AMQP寻址映射到Saydo队列和主题

在 AMQP 1.0 协议规范中,地址字段用于标识链接的源和目标。在事件代理上,地址可以是:

  • 队列的名称。
  • SMF 格式的主题

延迟消息消费

延迟消息消费允许消息在某个时间发布,并在稍后的时间被消费,您可以指定发布时间和消费时间之间的延迟。有关如何设置和使用此功能的说明,请参阅延迟投递。如果您打算使用延迟消息消费,请记住 AMQP 1.0 将每条消息都设置为 DMQ 合格。