RabbitMQ 教程 - Topic
Topic
(使用 AMQP 1.0 .NET 客户端)
信息
先决条件
本教程假设 RabbitMQ 已 安装 并在 localhost 上的 标准端口 (5672) 上运行。如果您使用不同的主机、端口或凭据,则需要调整连接设置。
哪里寻求帮助
如果您在学习本教程时遇到困难,可以通过 GitHub Discussions 或 RabbitMQ 社区 Discord 联系我们。
在上一篇教程中,我们使用了一个 direct(直连)交换机来根据单一标准(严重性)进行路由。Topic(主题)交换机则根据路由键中的模式进行路由——当消息携带多个维度(例如 kern.critical)时,这非常有用。
本示例声明了一个类型为 topic 的 logs_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(请求/回复)模式。