Spring boot 为什么不应该';我什么都不能用rabbitmq主题交换吗?

Spring boot 为什么不应该';我什么都不能用rabbitmq主题交换吗?,spring-boot,rabbitmq,amqp,rabbitmq-exchange,Spring Boot,Rabbitmq,Amqp,Rabbitmq Exchange,工作模式、扇出和过滤主题似乎都可以通过主题交换来实现。为什么我要使用直接交换或扇出交换呢 我们希望在一个抽象了amqp无限灵活性(命名约定、默认为持久、发送公共头、过期等)的库中对组织中的常见模式进行编码。我们应该利用不同的交换类型,还是使用主题实现所有模式;为什么? (我们有通过spring boot、golang和php使用Java的消费者/发布者) 为什么我不应该使用rabbitmq主题交换 没有人说你不应该。如果它对你有用,那就尽情享受吧 发件人: 关于交换类型的真相是没有“主”类型——

工作模式、扇出和过滤主题似乎都可以通过主题交换来实现。为什么我要使用直接交换或扇出交换呢

我们希望在一个抽象了amqp无限灵活性(命名约定、默认为持久、发送公共头、过期等)的库中对组织中的常见模式进行编码。我们应该利用不同的交换类型,还是使用主题实现所有模式;为什么?

(我们有通过spring boot、golang和php使用Java的消费者/发布者)

为什么我不应该使用rabbitmq主题交换

没有人说你不应该。如果它对你有用,那就尽情享受吧

发件人:

关于交换类型的真相是没有“主”类型——没有一个可以用作默认类型,或者在大多数情况下。当然,一个给定的应用程序可能有一个单一的交换或交换类型来满足其需求,但情况并非总是如此。即使在单个系统中,也可能需要以不同的方式路由消息,并使它们最终位于同一队列中

如果您发现自己处于这样一种情况,即选择上述一种交换类型将排除邮件所需的一组路由行为,请使用多个交换。您可以从任意数量的交换机路由到单个队列,也可以从单个交换机路由到任意数量的队列

对于任何给定的邮件或目的地,不要将系统路由需求限制为单一交换类型。根据需要充分利用每一项

在不同的交换类型上(同样,来自我的电子书)

直接:

直接交换允许您使用匹配的、区分大小写的路由密钥将队列绑定到交换。这可能是它们的最直接的交换,因为没有模式匹配或其他行为来跟踪和考虑。如果邮件中的路由密钥与exchange中绑定的路由密钥匹配,则邮件将被路由

扇出:

扇出交换允许您向绑定到交换的每个队列广播消息,而无法筛选接收消息的队列。如果队列绑定到扇出交换,它将接收通过该交换发布的任何消息

和专题交流:

主题交换类似于直接交换,因为它使用路由键。不过,与直接交换不同,路由密钥不必与要路由的消息完全匹配。主题交换允许您指定绑定中“主题”(路由密钥)的通配符匹配。这使您可以从多个路由密钥接收消息,并提供了其他exchange类型所没有的灵活性


很抱歉没有早点接受,我想看看是否还有其他角度。谢谢你的解释!老实说,我甚至不确定我是否回答了这些问题。不过,很高兴您发现它很有用!:)