0

私が開発した Flume カスタム ソースで、Rabbit Queue をリッスンする必要があります。この要件は、Flume では扱いにくいように思えるかもしれません。簡単にするためにSpring AMQPを使用してキューをリッスンしているため、FlumeライフサイクルのStart()メソッド内でOnMessage()メソッドを呼び出す方法を理解できないため、メッセージをFlumeチャネルに投稿できます。Spring MessageListenerAdapter の概念を見てきましたが、同じものを実装する例を見つけることができませんでした。

4

1 に答える 1

1

onMessage()MessageListenerパターンの一部です。これは、外部システムによって(大きな高さから)開始されるアクティブなコンポーネントです。また、そのリモート コマンドによって毎回動作するためpassive、ユーザー呼び出しによって開始されるコンポーネントとして使用することはできません。

「Flume lifecycle Start()」を反対側からSimpleMessageListenerContainer持っていて、その側から同じものを持っているので、それらのライフサイクルを相互に関連付けて連携させる必要があると思います。

ここから、目的のメソッドを呼び出して「Flume チャネルに投稿」するSimpleMessageListenerContainerインライン実装を提供する必要があります。MessageListener

HTH

アップデート

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

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

});

sendMessageToFlumeChannelは保持クラスのメソッドです。

もちろん、MessageListener実装ではなく任意の POJO にすることができますが、リスナーの結果を何らかのメソッドに委譲することが主な目標です。

于 2014-08-07T10:42:09.100 に答える