跳至主内容

RabbitMQ 教程 - Topic

Topic

(使用 AMQP 1.0 .NET 客户端)

信息

先决条件

本教程假设 RabbitMQ 已 安装 并在 localhost 上的 标准端口 (5672) 上运行。如果您使用不同的主机、端口或凭据,则需要调整连接设置。

哪里寻求帮助

如果您在学习本教程时遇到困难,可以通过 GitHub DiscussionsRabbitMQ 社区 Discord 联系我们。

上一篇教程中,我们使用了一个 direct(直连)交换机来根据单一标准(严重性)进行路由。Topic(主题)交换机则根据路由键中的模式进行路由——当消息携带多个维度(例如 kern.critical)时,这非常有用。

本示例声明了一个类型为 topiclogs_topic 交换机。发布者通过 PublisherBuilder().Exchange(exchangeName).Key(routingKey) 设置路由键。消费者在命令行上传递一个或多个绑定键(模式),并为每个模式绑定临时队列。

主题绑定规则

  • * 恰好匹配一个单词。
  • # 匹配零个或多个单词。
  • 单词在路由键中通过 . 分隔。

运行

dotnet run --project ReceiveLogsTopic/ReceiveLogsTopic.csproj "kern.*"
dotnet run --project EmitLogTopic/EmitLogTopic.csproj kern.critical "A critical kernel error"

源码

现在我们可以继续学习教程 6,了解 RabbitMQ 中的 RPC(请求/回复)模式。

© . This site is unofficial and not affiliated with VMware.