routing - RabbitMQ - 路由键与绑定(bind)键中的通配符

标签 routing rabbitmq

我正在使用 rabbitmq 将消息从单个服务器发送到多个客户端。我想向所有客户发送消息,所以我创建了一个他们都绑定(bind)到的交换。这很好用。但是,如果我想根据路由键(而不是绑定(bind)键)中的通配符向少数这些客户端发送消息怎么办。例如,我说红色客户端、蓝色客户端和绿色客户端。有时我希望所有客户端都收到消息,有时我只想要蓝色,或者只想要蓝色和红色。这是一个简化的例子。要将其扩展到我的实际系统,假设我有数百个“颜色”区别。我无法弄清楚如何做到这一点,因为通配符似乎只存在于绑定(bind)键而不是路由键中。

任何建议将不胜感激。

最佳答案

我认为你试图用一个队列做太多事情。考虑到您提前知道消息是发送给所有客户端还是只发送给一个客户端,那么您应该设置两个交换。一个作为主题或直接,客户端将仅获取专门为他们准备的消息,另一个作为扇出交换,将分发到将由所有客户端读取的一组不同的队列。 header 交换也可以为您提供所需的灵 active ,另一种可能性是编写自定义交换来完全满足您的需要。

关于routing - RabbitMQ - 路由键与绑定(bind)键中的通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22546840/

相关文章:

asp.net-mvc - MVC 和 AngularJS 路由 - 403.14 - 禁止访问

路由组件的 Angular 2 "slide in animation"

routing - 在 Component Angular 2 中限制未经授权的访问

.net - MassTransit - 初始化复杂消息的最佳实践

docker - 如何修复我的 docker-compose.yml 我收到的rabbitmq.config 是目录错误?

laravel - 使用 forceRootUrl() 会破坏一些路由

asp.net - 在脚本标记src属性中使用代字号

php - RabbitMQ 单一消费者,消费来自多个队列的消息

RabbitMQ - 通过 AMQP 上的 STOMP 创建访问/队列或/主题

java - 当消费者从rabbitmq中的 channel 获取消息时,预取消息驻留在哪里