在Flume Lifecycle中使用Spring AMQP onMessage()方法

时间:2014-08-07 08:23:31

标签: java spring rabbitmq flume spring-rabbit

我需要在我开发的Flume Custom Source中听一个Rabbit Queue。这个要求在Flume中看起来很尴尬。但这就是它的需要。 由于我使用Spring AMQP来监听队列以简化,我只是无法理解如何在Flume生命周期Start()方法中调用OnMessage()方法,以便可以将消息发布到Flume通道上。 我已经查看了Spring MessageListenerAdapter概念,但是我无法找到任何实现相同的示例。

1 个答案:

答案 0 :(得分:1)

onMessage()MessageListener模式的一部分。它是一些活动组件,由外部系统(从高处)启动。并且它每次都通过该远程命令工作,因此您不能将其用作由用户调用启动的passive组件。

由于你从另一侧有“Flume生命周期开始()”而且SimpleMessageListenerContainer从它的侧面有相同的,我会说你必须将它们的生命周期联系起来才能协同工作。

从这里你应该提供SimpleMessageListenerContainer一些内联MessageListener实现,它会调用所需的方法来“发布到Flume频道”。

HTH

<强>更新

SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
....
container.setMessageListener(new MessageListener() {

   public void onMessage(Message message) {
       sendMessageToFlumeChannel(message);
   }

});

sendMessageToFlumeChannel是持有类的方法。

当然它可以是任何POJO而不是MessageListener实现,但是将侦听器委托给某些方法的主要目标。