何时使用RabbitMQ中的哪个Exchange?

何时使用RabbitMQ中的哪个Exchange?,rabbitmq,Rabbitmq,我读过很多关于拉比特交换的文章。 但我找不到任何有用的文章来解释每个交换的用例。 他们所说的是 直接交换-绑定密钥和路由密钥应相同 主题交换-路由密钥应与绑定密钥的路由模式匹配 扇出交换-绑定到该特定交换的所有队列都将获得该消息 头交换-头应与键匹配 有人能详细解释每种交换及其用例吗?好吧,选择要使用的交换类型很大程度上取决于您的用例,选择最适合您的交换类型是您的责任 以下是一些例子: 假设您想要一个广播(您有多个应用程序实例应该接收消息)。例如,系统中发生了一些事情(资源变得可用,缓存应该失效

我读过很多关于拉比特交换的文章。 但我找不到任何有用的文章来解释每个交换的用例。 他们所说的是

直接交换-绑定密钥和路由密钥应相同

主题交换-路由密钥应与绑定密钥的路由模式匹配

扇出交换-绑定到该特定交换的所有队列都将获得该消息

头交换-头应与键匹配


有人能详细解释每种交换及其用例吗?

好吧,选择要使用的交换类型很大程度上取决于您的用例,选择最适合您的交换类型是您的责任

以下是一些例子:

  • 假设您想要一个广播(您有多个应用程序实例应该接收消息)。例如,系统中发生了一些事情(资源变得可用,缓存应该失效,您可以命名它),您希望所有实例都知道它。那么您的第一次下注将使用扇出交换

  • 另一个例子。您希望单播:发送一条消息,您有多个消费者,但您希望只有一个消费者会收到消息并尝试处理它。在这种情况下,您不能使用扇出交换,您将选择其他类型的交换(例如直接交换)

  • 总而言之,我相信您应该有兴趣阅读这本书,它描述了相当丰富的amqp协议的各种概念,并为不同类型的交换提供了用例示例