我编写了简单的示例来从控制台读取文本并将其发送到rabbitMq服务器:
@Configuration
@EnableIntegration
@IntegrationComponentScan
public 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)
队列选项卡如下所示:
阿晨1998
相关分类