我已经阅读了很多关于RabbitMQ交流的文章。但是我找不到任何有用的文章来解释每个交换的用例。他们在说的是
直接交换 -绑定密钥和路由密钥应该相同。
主题交换 -路由密钥应与绑定密钥的路由模式匹配。
扇出交换 -绑定到该特定交换的所有队列都将收到消息。
标头交换 -标头应与密钥匹配。
谁能详细解释每个交换和用例?
好吧,要使用的交换类型的选择在很大程度上取决于您的用例,这是您选择最适合您的交换类型的责任。
这里有些例子:
假设您要广播(您有多个应该接收消息的应用程序实例)。例如,系统中发生了一些事情(资源变为可用,缓存应该失效,请为它命名),并且您希望所有实例都知道它。然后,您的第一个赌注将是使用fanout交换。
另一个例子。您想单播:发送一条消息,您有多个使用者,但是您希望只有一个使用者会收到一条消息,并尝试对其进行处理。在这种情况下,您不能使用扇出交换,而会选择其他类型的交换(例如直接交换)。