第 8 章 发送者和接收方
客户端使用发送方和接收器链接来表示用于发送消息的通道。发送者和接收方是单向的,消息来源的结尾,消息目的地的目标结束。
源和目标通常指向消息代理上的队列或主题。源也用于表示订阅。
8.1. 按需创建队列和主题 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
某些消息服务器支持按需创建队列和主题。连接了发送方或接收方时,服务器使用发送方目标地址或接收器源地址来创建名称与该地址匹配的队列或主题。
消息服务器通常默认为创建队列(用于一对一消息发送)或主题(一对多消息发送)。客户端可以通过在源或目标中设置 queue 或 topic 功能来指示它首选的内容。
要选择队列或主题语义,请按照以下步骤执行:
- 配置您的消息服务器,以自动创建队列和主题。这通常是默认配置。
-
在发送者目标或接收器源中设置
queue或topic功能,如下例所示。
示例:发送到按需创建的队列
class CapabilityOptions(SenderOption):
def apply(self, sender):
sender.target.capabilities.put_object(symbol("queue"))
class ExampleHandler(MessagingHandler):
def on_start(self, event):
conn = event.container.connect("amqp://example.com")
event.container.create_sender(conn, "jobs", options=CapabilityOptions())
示例:从按需创建的主题接收
class CapabilityOptions(ReceiverOption):
def apply(self, receiver):
receiver.source.capabilities.put_object(symbol("topic"))
class ExampleHandler(MessagingHandler):
def on_start(self, event):
conn = event.container.connect("amqp://example.com")
event.container.create_receiver(conn, "notifications", options=CapabilityOptions())
如需更多信息,请参阅以下示例: