【问题标题】:Are topic exchanges the only exchanges that support wildcards?主题交换是唯一支持通配符的交换吗?
【发布时间】:2013-02-12 15:31:54
【问题描述】:

在尝试理解直接、扇出和主题交换之间的区别时,我想确认主题交换的优点是生产者推送到交换并指定完全特定的路由键,并且队列可以绑定到多个通过通配符路由键。例如话题推送到...

$channel->basic_publish($msg, 'logs-exchange', 'error.critical.ram')

一个会向待命团队发送有关所有严重错误的消息的队列会像...

$channel->queue_bind('on-call-team', 'logs-exchange', 'error.critical.*')

而带有error.*.ram 的类似队列会向负责增加内存的系统运营团队发送消息。

这是主题交换的正确用例吗?主题交换是唯一可以支持这种灵活性的交换吗?相反,主题交换和扇出交换都可以通过主题交换实现吗?

【问题讨论】:

    标签: rabbitmq amqp


    【解决方案1】:

    这是主题交换的正确用例吗,

    是的,此交换的用法绝对正确。你会看到它非常强大

    主题交换是唯一可以支持这种灵活性的交换吗?

    是的,类似的直接交换将不支持通配符,因此您必须在绑定时指定完整的路由键,否则它将无法接收消息。可能有使用主题交换作为基础的自定义消息,但我想不出一个临时的

    相反,主题交换和扇出交换都可以通过主题交换实现吗?

    我不确定你在这里的意思。是的,您可以使用相同的绑定键将多个队列绑定到交换器,因此它们都会收到相同的消息。但是,如果您不需要该功能,那么您不妨使用扇出交换本身。

    此外,我还有一个绑定到某些队列和主题交换的扇出交换。此交换的发布者使用路由密钥,即使扇出交换不需要它,但它被路由到的主题交换需要它。这很好,因为它对扇出没有影响,因为我们对主题交换造成了问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-30
      • 2012-03-31
      • 2011-09-03
      • 2019-02-03
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      相关资源
      最近更新 更多