問題タブ [spring-rabbit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 同じインターフェースを実装する複数の Bean
正確な使用法は次のとおりです。
各「クライアント」インスタンスには、互いに衝突しないように独自の Bean ID があります。
SpEl を使用して、このオブジェクトの正確な updateListener を取得するにはどうすればよいですか?
アップデート
プログラムによるアプローチと登録方法を使用した後、次の例外が発生します。
アップデート
完了したら、目的の動作を実現するために次のことを行う必要があります。
java - Spring ブート RabbitMQ ホスト文字列形式
spring boot を使用して、rabbitmq インスタンスでメッセージをリッスンしています。ファイルを使用してローカルで動作させていapplication.properties
ます。
ただし、リモートのウサギ インスタンスに接続しようとすると、URL が原因で数値形式の例外と不明なホストの例外が発生します。
私はに設定しようとしましspring.rabbitmq.host
た:
amqp://myurl/dev and myurl/dev and amqp%3A%2F%2Fmyurl%2Fdev
何も機能していません。何が起きているのか、どんなアイデアでも。リモートインスタンスにもユーザー名とパスを設定しました。
java - RabbitMQ を使用した spring-amqp が正しくシャットダウンしない
SimpleMessageListenerContainer
shutdownTimeout
コンシューマーが呼び出し後に実行を終了しないAnnotationConfigApplicationContext.close()
と、Spring アプリケーションがハングします。
リスナー:
構成:
主要:
出力:
その後、アプリケーションは無限に機能します。
作業スレッド:
非デーモンスレッド:
を増やせば問題ないのですがshutdownTimeout
、タイムアウトの動作がバグのようです。
春のバージョン:
更新: System.out.println のLog
呼び出しを呼び出しに置き換え、ログ用に log4j を構成しました。パターン:%r [%t] %-5p %c{1} - %m%n
出力:
java - spring-rabbitmqは自動ではありませんか?
私が今使っているのは、spring 4.0.0.RELEASE と spring-rabbit 1.4.4.RELEASE です。
私のコードはメッセージを処理します。メッセージ キューは消えないので、プロセスを循環しています。
spring-rabbitmq.xml
CallBackTaskMessageListener.java
解決方法 いくつかのニュースをコラムで取り上げさせてはいけません。メッセージの正しい応答をどのように処理しますか? ありがとう。
java - Rabbitmq でコンカレント プロデューサーが無期限にブロックする
spring-rabbit-1.3.9.RELEASE ライブラリを使用して Rabbitmq 3.3.5 の POC を実行しているときに、奇妙な動作を観察しています。
単一の生成スレッドを開始すると、物事はスムーズに実行されます。ただし、複数のスレッドを同時に開始すると、そのうちの 1 つだけが終了し、他のすべてのスレッドは、キューが空になった後でも無期限にブロックされます。
から監視すると、ブロックされたスレッドの接続のステータスは実行中のままになりますrabbitmqctl list_connections
。プロデューサがブロックするとき、または完全な実行中のその他の時点では、アラームは発生しないことに注意してください。
また、各送信後に 1 ミリ秒スリープ状態にすると、問題が解消されることも確認しました。
だから、私はこれらの質問があります
- rabbitmq は並行プロデューサーをサポートしておらず、高いレートで公開していますか?
- 接続が実際にブロックされている場合でも、rabbitmqctl list_connections に表示されないのはなぜですか?
- なぜ彼らは無期限にブロックし、ホエイ キューが空になると回復しないのですか?
コード
春の構成
java - 多くのCPUを使用するspring-rabbitクライアント
c3.large マシンの ec2 で spring-boot アプリケーションを実行しています。独自のスレッドを開始する spring-rabbit クライアントを初期化します。
YourKit を使用してアプリケーションのプロファイリングを行った後、多くの時間がウサギ クライアント スレッド内で費やされていることがわかりましcom.rabbitmq.client.impl.AMQConnection$MainLoop.run()
た。java.io.DataStream.readUnsignedByte()
私には、RabbitMQ サーバーからソケットへの入力を継続的にブロックする while ループがあるように見えます。
誰かがこれに遭遇しましたか?プロファイリング結果を正しく読んでいますか? amqp クライアントをノンブロッキングにする方法はありますか?