是交换式在Spring AMQP RabbitMQ的代码不可用发送方?(Is exchange ty

2019-10-29 08:40发布

我在RabbitMQ的一个基本问题。 在Spring AMQP的情况下,在同时使用XML配置和Java配置注释,所用交换的类型只在听众侧是已知的。 我的意思是在,只有消费者的配置代码包含正在使用的交换类型(主题/直接/扇出)。 在发送端,我们将有 -

amqpTemplate.convertAndSend("exchange_name", "routing_key",sampleMessage);

因此,它是像发送代码不打扰或知道交换的类型(主题/直接/扇出)以其所发送到??

在蟒蛇的情况下,我们必须在发送端,

 channel.exchange_declare(exchange='logs',
                     exchange_type='fanout')

所以在这里,交换的类型在发送方是已知的。 而春季的情况下,是交换的名字是所有可用?

Answer 1:

一般情况下,发送方不需要知道交换的类型,虽然发送到扇出意味着路由键被忽略,以便可以为任意值。

您可以按如下声明交流:

@Bean
public FanoutExchange exchange() {
    return new FanoutExchange("logs");
} 

如果有@RabbitAdmin豆,交易所将自动申报的基础上,豆型。 春天开机自动配置管理员; 如果你不使用启动你需要声明你自己的。



文章来源: Is exchange type not available at sender side in Spring AMQP RabbitMQ codes?