RabbitMQの簡潔シリーズタイトルIII第21章高度な統合アプリケーション SimpleMessageListenerContainer
今日主な内容:
SimpleMessageListenerContainerのオブジェクト
SimpleMessageListenerContainer :シンプルなメッセージ・リスナー・コンテナ。
このクラスは、非常に強いです、我々はそれの多くは、対応する消費者の設定項目を設定されていることができ、このクラスをすることができます会いました。
機能を主張し、キュー(複数のキュー)、自動起動を聞きます
トランザクションをオープンするかどうかを特性設定トランザクション、トランザクションマネージャ、トランザクション属性、トランザクション能力(同時)、ロールバック・メッセージなど、
消費者の数、最大値と最小数、ボリュームの消費者を設定します。
自動セットアップメッセージの確認応答と確認モード、リターンキューかどうか、例外ハンドラ関数キャプチャ
メイン:SimpleMessageListenerContainerを動的に設定することができます。例えば、実行中のアプリケーションに動的にメッセージを受信するために、消費者のサイズ、パターン等の数を変更することができます
多くのベースのRabbitMQ の自己開発した技術のバックエンドのダイナミックな設定で管理ステーションは、また、実現するために、この特性に基づいています
思考:SimpleMessageListenerContainer なぜ動的構成変更を認識することができますか?
コード例:
でrabbitMQConfig クラスの追加SimpleMessageListenerContainer 豆のを。でsimpleMessageListenerContainer 多くのものを設定することができます。図は次のとおりです。
設定し記号モード
@豆 公共 SimpleMessageListenerContainer messageListenerContainer (ConnectionFactoryのはconnectionFactory ){ SimpleMessageListenerContainer messageListenerContainer = 新しい SimpleMessageListenerContainer (はconnectionFactory )。 //キュー・モニターを追加 messageListenerContainer.setQueues (queue001()、queue002()、queue003()、 queue_image ()、 queue_pdf ())。 //モニタデータを設定します messageListenerContainer.setConcurrentConsumers (1 )。 messageListenerContainer.setMaxConcurrentConsumers(5); //设置是否重回队列 messageListenerContainer.setDefaultRequeueRejected(false); //设置签收模式 为自动签收 messageListenerContainer.setAcknowledgeMode(AcknowledgeMode.AUTO); //设置客户端tage messageListenerContainer.setConsumerTagStrategy(new ConsumerTagStrategy() { @Override public String createConsumerTag(String queue) { return queue+"_"+ UUID.randomUUID().toString(); } }); //消息 messageListenerContainer.setMessageListener(new ChannelAwareMessageListener() { @Override public void onMessage(Message message, Channel channel) throws Exception { String msg = new String (message.getBody(),"UTF-8"); System.out.println("---------->>消息为:"+msg); } }); return messageListenerContainer; } |
启动代码,我们从页面管控台查看:
点进去查看:
我们可以看到,我们自定义的consumer tag已经生效了
进行发送消息测试。
在测试类中,运行发送消息的代码:
运行之后,我们在控制台可以看到,打印出三条数据。也就是我们在RabbitMqConfig类中设置的。如下图:
説明に成功したメッセージを待ち受けます。
上記二つの試験の後、私たちのsimpleMessageListenerContainerは正常に設定します。
関連する更新するコードはgit に。
セクション予告の下で:MessageListenerAdapter