我已经成功地通过Java配置了一个使用直接通道的AWS SQL的入站通道适配器。该项目使用jdbc和rabbitmq与sqs的组合作为3个独立队列的入站流。我需要持久的消息,所以我正在尝试如何利用rabbitmq。我对如何引用amqp频道感到困惑。如何从setOutputChannel引用AMQP消息通道?我的目标是,仅当消息成功发布到rabbitmq持久队列时,才将消息从sqs中删除。
@Bean
public MessageProducer getSQSChannel() {
SqsMessageDrivenChannelAdapter adapter = new SqsMessageDrivenChannelAdapter(this.amazonSqs, MY_SQS_QUEUE);
adapter.setOutputChannel(????);
return adapter;
}
@Bean
public AmqpChannelFactoryBean messageDriven(ConnectionFactory connectionFactory) {
AmqpChannelFactoryBean factoryBean = new AmqpChannelFactoryBean(true);
factoryBean.setConnectionFactory(connectionFactory);
factoryBean.setQueueName("bar");
factoryBean.setPubSub(false);
return factoryBean;
}