問題タブ [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 投票する
6 に答える
5878 参照

spring - 春のウサギXSD(ウサギのスキーマの場所:名前空間)はどこにありますか

http://static.springsource.org/spring-amqp/docs/1.0.x/reference/html/は名前空間について言及していrabbit:ますが、スキーマの場所については言及していません。グーグル(および命名規則)は、次のようになりました。

http://www.springframework.org/schema/rabbit/spring-rabbit.xsd

しかし、このファイルは存在しません。では、xsdはどこにありますか?

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

java - RabbitMQ basic.get と確認

私は呼び出しています:

ただし、を呼び出すbasicGetと、キュー内のメッセージは「未確認」ではなく「準備完了」のままになります。私はそれらを未確認のままにしたいので、basic.ackそれらを(したがってキューから破棄する)、またはbasic.nackそれらのいずれかを行うことができます

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

java - 接続のないAMQP/RabbitMQチャネルはいつ死にますか?

単純なRabbitMQテストプログラムがランダムにメッセージをキューに入れ、別のプログラムがそれらを読み取り、すべてSpring-AMQPを使用しています。コンシューマーが死亡した場合(たとえば、接続またはチャネルを閉じる機会がないままプロセスを強制終了した場合)、確認応答されなかったメッセージは、永久に未確認のままであるように見えます。

接続がない場合にチャネルが停止し、残りの未確認のメッセージが再配信されるという多くの参照(たとえば、この質問)を見てきました。これは私が見ている動作ではありません。代わりに、IDLEとマークされたチャネルのリストと、実行中とマークされているがアクティビティがない接続のリストが増えています。

プロセスが強制終了された後、接続が切断されたことを通知するために必要な構成はありますか?

編集: VirtualBox VM内でrabbitmqサーバーを実行していましたが、NATを介したデッドインバウンド接続を正しく管理していないようです。これは、物理ホスト上で直接実行されているmqサーバーで問題なく機能します。

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

java - spring amqp でメッセージが正常に送信されたことを確認するにはどうすればよいですか?

RabbitTemplate クラスを使用して、Spring amqp で RabbitMQ キューに書き込みを行っています。convertAndSend メソッドを使用してメッセージをキューに送信します。これは通常の状況ではうまく機能しますが、キューが存在しない場合は黙って失敗するようです。例外はスローされず、エラー/デバッグ メッセージはロガーに記録されません。

メッセージが配信されたことを確認するにはどうすればよいですか?

コードが現在行っていることの例を次に示します。

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

spring - SpringFrameworkのStatefulRetryOperationsInterceptorクラスの問題

「StatefulRetryOperationsInterceptor」クラスに問題があります。インターネット上にソースの例がないため、使用方法がわからないため、助けを求めます:)。したがって、このクラスの使用経験がある場合は、ここに簡単なソースの例を投稿していただければ幸いです。ありがとう

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

rabbitmq - RabbitMQ ロールバック トランザクションと再ルーティング メッセージ

条件:

1) hibernate トランザクション マネージャーを使用します。2) キューはトランザクションとしてマークされます。3) spring-amqp にバンドルされている SimpleMessageListenerContainer を使用して、メッセージのコンシューマーをトリガーします。

シナリオ :

コンシューマは、ハイバネート トランザクションをロールバックさせ、メッセージを再度キューに入れる原因となる予期しないエラーが原因で例外を生成します。これはコンテナによって処理されます。

SimpleMessageContainer の記述方法が原因で、キューからメッセージを削除してプラットフォーム トランザクション マネージャーをロールバックする方法を見つけることができませんでした。チャネルとトランザクション マネージャーの両方がロールバックするか、操作がパスします。

私が考えたのは、メッセージのフィールドにデータを入力することにより、例外でメッセージを失敗としてマークすることでした。これにより、別のコンシューマーに戻ったときに、AOP アドバイスを使用してメッセージの状態を分析し、メッセージを別のメッセージに再ルーティングできます。両替。

メッセージの本文を変更したり、rabbitmq でメッセージにタグを付けるためにヘッダーを追加したりすることはできないようです。メッセージが戻ってくるたびに、元のメッセージになります。

メッセージにタグを付けるにはどうすればよいですか?

他の人は、トランザクションをロールバックしながら、例外でメッセージの再ルーティングをどのように解決しましたか?

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

spring - Spring AMQP を使用する webapp は 1 つのクライアントと見なされますか?

こんにちは、Spring AMQP を使用する Web アプリケーションを作成するかどうか迷っています。その単一の webapp 1 AMQP クライアントですか? それとも、AMQP 呼び出しにつながるユーザーによって作成されたすべての要求は、クライアントの数が x になる可能性があるのでしょうか?

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

imap - spring / amqp/rabbitを介して何千ものimapアイドル受信ボックスを聞く方法

ユースケースは、サーバーを数千人のユーザーの電子メールアカウントに接続し、Javaで受信メールをスニッフィングすることです。JavaメールとSpring Integration / amqp / rabbit mqタイプのスケーラブルなインフラストラクチャを使用します。imapアイドルタイプの接続と、必要に応じてサーバー処理ノードを追加します。

単一のインバウンドチャネルは、imapアイドルインバウンドアダプタを使用すると簡単です。XMLでいくつかを構成できます。ただし、これらのアダプターの数千の永続的なリスナー/ imapidlechannelアダプターのキューが必要であり、サーバー処理のために新しいユーザー接続を動的に追加する必要がある場合。これは課題になります。また、Javaリスナーが停止したり、サーバーがこれらすべてのリスナーを再起動したり、それらの構成も再起動したり、数千の接続を再構築したり、一部の接続がアイドル受信のすべてのユーザー接続を再構築せずにアイドル受信機能を失った場合に回復したりするという障害の警告も必要です。

たくさん検索されたので歓迎されるアイデアはありますが、何も見つかりませんでしたか?これは、開いている電子メール受信接続に関する重大なスケーラビリティの問題のようです。

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

spring - リストを Message Spring AMQP として保存/シリアライズする

RabbitMQ を使用する Spring AMQP は初めてです。私は、この質問がより広い問題に対処していることを理解しています。コンシューマーに送信できるメッセージにオブジェクトのリストを保存したいと考えています。誰でもこの問題の簡単な解決策を提供できますか?

シリアル化が解決策になることは知っていますが、それは私が使用している単純なアプリケーションにとってはやり過ぎです。メッセージは本質的に非同期です。他のアプローチはありますか?

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

rabbitmq - Spring AMQP/RabbitMQ および Hibernate Transaction Manager

Hibernate と PostgreSQL を使用する Spring アプリケーションがあります。また、Spring AMQP (RabbitMQ) も使用します。

次のように構成された Hibernate Transaction Manager を使用しています。

次のように構成された非同期メッセージ受信に SimpleMessageListenerContainer を使用しています。

したがって、基本的に、メッセージの受信はトランザクションである必要があると指定しました。メッセージ リスナーは、@Transactional でアノテーションを付けたメソッドを持つことができるサービスを呼び出し、場合によっては DB で CRUD 操作を実行します。

私の質問は、HibernateTransactionManager を使用して SimpleMessageListenerContainer レベルでトランザクションを管理することに問題はありますか? DB トランザクション マネージャーを使用して、RabbitMQ からのメッセージの受信をラップする問題はありますか?

私はここで XA を期待していません。サービスによる DB での操作が失敗した場合に、メッセージが RabbitMQ ブローカーに ack されないようにしたいだけです。