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