我编写了简单的示例来从控制台读取文本并将其发送到rabbitMq服务器:@Configuration@EnableIntegration@IntegrationComponentScanpublic class Config { @Autowired private AmqpTemplate amqpTemplate; @Bean public IntegrationFlow fromConsoleToRabbitFlow() { return IntegrationFlows.from(consoleSource(), c -> c.id("consoleInput") .poller(Pollers.fixedRate(1000)) .autoStartup(true) ).channel("consoleOutputChannel") .handle(Amqp.outboundAdapter(amqpTemplate).routingKey("my_spring_integration_queue")) .get(); } public MessageSource<String> consoleSource() { return CharacterStreamReadingMessageSource.stdin(); }}my_spring_integration_queue它看起来几乎可以工作的解决方案,但我在rabbitmq管理控制台中找不到:但我在其他选项卡上找不到与“my_spring_integration_queue”相关的任何内容。我在哪里可以找到它?我希望应用程序会创建队列(如果不存在)。我无法找到发送到队列的方法,所以我使用了.routingKey方法。我也尝试过.exchangeName方法,但它导致:32019-08-27 13:26:15.972 ERROR 16372 --- [ 127.0.0.1:5672] o.s.a.r.c.CachingConnectionFactory : Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange 'my_spring_integration_queue' in vhost '/', class-id=60, method-id=40)聚苯乙烯队列选项卡如下所示:
1 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
您需要手动添加队列或使用 aRabbitAdmin
@Bean
自动为您声明它 - 管理员将找到所有类型的 beansQueue
并声明它们。
如果你使用的是 Spring Boot,它会自动为你配置一个管理 bean,所以你只需要Queue
@Bean
.
添加回答
举报
0/150
提交
取消