問題タブ [spring-amqp]

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.

0 投票する
1 に答える
1907 参照

java - channel.close() および connection.close() で RabbitMQ クライアントがハングアップする

Java で amqp-client を使用していますが、チャネルを閉じている間に JVM が無限にハングアップします。
それを削除するchannel.close()と、jvm は で無限にハングアップしconnection.close()ます。
API クラスを調べたところ、どちらの場合も、RabbitMQ API がタイムアウトを無限に取り、応答を待つだけであることがわかりました。

これに対する回避策があるかどうか教えてください。amqp-client-3.1.3 を使用しています。
どうもありがとう。

0 投票する
1 に答える
606 参照

rabbitmq - RabbitMQ: キュー サーバーを 1 つだけ使用しながら、消費者と生産者のバドルを分離する

プロジェクトでrabbitmqを使用しますが、開発マシンでデバッグしたいという問題に直面しているため、最初に要求メッセージを送信するマシンに応答メッセージを送信する必要があります。それをどのように達成するのか、spring-rabbitmq フレームワークに既存のソリューションはありますか?

私たちはいくつかの解決策を検討しました。マシンごとに一連のキューを宣言するなど、キュー名のプレフィックスをマシン名で指定します。それは実現可能ですか?

0 投票する
2 に答える
1885 参照

hibernate - Spring ampq コンシューマー - 最初の試行で「現在のスレッドのセッションが見つかりません」というエラーが表示される

Spring MVC アプリケーションがあります。spring ampq を使用して非同期タスクを実行したいと考えています。私の REST バックエンドは @Transactional アノテーションを使用してトランザクションを管理します。作業を行った後、タスクをエクスチェンジにプッシュしてから返します。その後、タスクはコンシューマーによって受信され、最初の試行で「org.hibernate.HibernateException: No Session found for current thread」エラーを受け取ります。次に、spring-ampq は再試行してタスクをコンシューマーに送信し、今回はセッション エラーなしで機能します。

このシナリオを最初の試行で機能させるにはどうすればよいですか?

私の春のampq構成はこれに似ています( http://projects.spring.io/spring-amqp/ ):

注: foo.Foo listen() メソッドにも @Transactional アノテーションが付けられます。

私のトランザクションマネージャーは次のように構成されています。

注: セッション ファクトリは、dao ファクトリの奥深くで初期化されます。REST サービスとウサギのコンシューマの両方で同じ dao ファクトリを使用しています。

私のエラーログは次のとおりです。

リスナーのコードは次のとおりです。

REST バックエンドのコードは次のようになります。

0 投票する
2 に答える
3946 参照

java - Spring AMQP 統合 - 消費者マニュアルの確認

サポート付きでテストSpring-AMQPSpring-Integrationています。次の構成とテストを行いました。

この構成では、メッセージが に到着するとすぐにconsumingChannel確認応答され、キューから削除されることが明らかでした。と checkのsleep後に高い値を付けることで、これを検証しました。それ以上の制御はありません。receivequeue-size

今私が設定した場合、春の統合を介しacknowledge-mode=MANUALて手動で行うように見える方法はありません。ack

メッセージを処理する必要があり、処理後、メッセージがに保持さmanual-ackれるまでそうします。ackdurableQ

MANUALでackを処理する方法はありますspring-amqp-integrationか? 消費者の を制御したいので、に渡すことは避けたいChannelAwareMessageListenerです。inbound-channel-adapterreceive

アップデート:

listener-containerownをinbound-channel-adapter次のように使用する場合、それは可能ではないようです。

プロパティが許可されていないため、上記の構成ではエラーがスローされmessageListenerます。タグのインライン コメントを参照してください。そのため、使用目的が無効になりました(を介しlistner-containerて公開するため)。channelChannelAwareMessageListener

spring-integrationには使用できませんmanual-acknowledgement(私は知っています、これは難しい言い方です!)、誰かがこれを検証するのを手伝ってくれますか、またはこれに必要な特定のアプローチ/構成がありませんか?

0 投票する
1 に答える
939 参照

json - AMQP JsonMessageConverter と Spring MappingJacksonHttpMessageConverter の違いは何ですか?

の違いを誰か教えてください

org.springframework.amqp.support.converter.JsonMessageConverter

org.springframework.http.converter.json.MappingJacksonHttpMessageConverter?

0 投票する
2 に答える
5770 参照

spring - 最大試行後にキューの末尾にあるうさぎ AMQP メッセージを再キューイングします

現在、RabbitMQ を春 (spring-rabbit-1.2.0-RELEASE) で使用しており、以下の構成になっています。

3 回目の試行後にメッセージをキューの末尾に再キューイングしたいと考えています。しかし、それを実行する方法が見つかりません。

誰かがアイデアを持っていますか?

よろしくお願いします。

0 投票する
1 に答える
731 参照

java - Spring Integration AMQP - レスポンスの間違った JSON タイプ

Spring Integration & SI AMQP 3.0.0-RELEASE を使用しています。

2 つの SI インスタンス間で AMQP を介した非常に単純な Request-Response があります。

要求元のサーバーに応答が戻ってきたときに、SI が Response オブジェクトではなく Request オブジェクトの型を使用して応答を逆シリアル化しようとしていることがわかりました。

つまり、次のゲートウェイ インターフェイスが与えられます。

の正しい JSON がAnalyticsResponseサーバーに到着しても、SI はそれを としてデシリアライズしようとしていますが、EntityMessage失敗しています。

私はそれをデバッグしましたが、原因は、応答側が受信json__TypeId__ヘッダーを提供するのではなく、受信ヘッダーをコピーしていることであると思われます。ただし、これをどこで誤って構成したかはわかりません。

ここに私の設定があります - 私は何を間違えましたか?

依頼側:

応答側:

0 投票する
1 に答える
2292 参照

spring - Spring Integration でのアノテーション付き構成の使用

@Configuration次のxmlがあり、この迷惑なxmlをクラスに置き換えたい

そして私のゲートウェイ:

spring-amqp の構成アノテーション付きクラスを既に使用していますが、正常に動作します。Spring Integration 構成で同じことを行うにはどうすればよいですか?

PS: Spring 3.2 と Spring Integration 3.0 を使用しています。