問題タブ [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.
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はどこにありますか?
java - RabbitMQ basic.get と確認
私は呼び出しています:
ただし、を呼び出すbasicGet
と、キュー内のメッセージは「未確認」ではなく「準備完了」のままになります。私はそれらを未確認のままにしたいので、basic.ack
それらを(したがってキューから破棄する)、またはbasic.nack
それらのいずれかを行うことができます
java - 接続のないAMQP/RabbitMQチャネルはいつ死にますか?
単純なRabbitMQテストプログラムがランダムにメッセージをキューに入れ、別のプログラムがそれらを読み取り、すべてSpring-AMQPを使用しています。コンシューマーが死亡した場合(たとえば、接続またはチャネルを閉じる機会がないままプロセスを強制終了した場合)、確認応答されなかったメッセージは、永久に未確認のままであるように見えます。
接続がない場合にチャネルが停止し、残りの未確認のメッセージが再配信されるという多くの参照(たとえば、この質問)を見てきました。これは私が見ている動作ではありません。代わりに、IDLEとマークされたチャネルのリストと、実行中とマークされているがアクティビティがない接続のリストが増えています。
プロセスが強制終了された後、接続が切断されたことを通知するために必要な構成はありますか?
編集: VirtualBox VM内でrabbitmqサーバーを実行していましたが、NATを介したデッドインバウンド接続を正しく管理していないようです。これは、物理ホスト上で直接実行されているmqサーバーで問題なく機能します。
java - spring amqp でメッセージが正常に送信されたことを確認するにはどうすればよいですか?
RabbitTemplate クラスを使用して、Spring amqp で RabbitMQ キューに書き込みを行っています。convertAndSend メソッドを使用してメッセージをキューに送信します。これは通常の状況ではうまく機能しますが、キューが存在しない場合は黙って失敗するようです。例外はスローされず、エラー/デバッグ メッセージはロガーに記録されません。
メッセージが配信されたことを確認するにはどうすればよいですか?
コードが現在行っていることの例を次に示します。
spring - SpringFrameworkのStatefulRetryOperationsInterceptorクラスの問題
「StatefulRetryOperationsInterceptor」クラスに問題があります。インターネット上にソースの例がないため、使用方法がわからないため、助けを求めます:)。したがって、このクラスの使用経験がある場合は、ここに簡単なソースの例を投稿していただければ幸いです。ありがとう
rabbitmq - RabbitMQ ロールバック トランザクションと再ルーティング メッセージ
条件:
1) hibernate トランザクション マネージャーを使用します。2) キューはトランザクションとしてマークされます。3) spring-amqp にバンドルされている SimpleMessageListenerContainer を使用して、メッセージのコンシューマーをトリガーします。
シナリオ :
コンシューマは、ハイバネート トランザクションをロールバックさせ、メッセージを再度キューに入れる原因となる予期しないエラーが原因で例外を生成します。これはコンテナによって処理されます。
SimpleMessageContainer の記述方法が原因で、キューからメッセージを削除してプラットフォーム トランザクション マネージャーをロールバックする方法を見つけることができませんでした。チャネルとトランザクション マネージャーの両方がロールバックするか、操作がパスします。
私が考えたのは、メッセージのフィールドにデータを入力することにより、例外でメッセージを失敗としてマークすることでした。これにより、別のコンシューマーに戻ったときに、AOP アドバイスを使用してメッセージの状態を分析し、メッセージを別のメッセージに再ルーティングできます。両替。
メッセージの本文を変更したり、rabbitmq でメッセージにタグを付けるためにヘッダーを追加したりすることはできないようです。メッセージが戻ってくるたびに、元のメッセージになります。
メッセージにタグを付けるにはどうすればよいですか?
他の人は、トランザクションをロールバックしながら、例外でメッセージの再ルーティングをどのように解決しましたか?
spring - Spring AMQP を使用する webapp は 1 つのクライアントと見なされますか?
こんにちは、Spring AMQP を使用する Web アプリケーションを作成するかどうか迷っています。その単一の webapp 1 AMQP クライアントですか? それとも、AMQP 呼び出しにつながるユーザーによって作成されたすべての要求は、クライアントの数が x になる可能性があるのでしょうか?
imap - spring / amqp/rabbitを介して何千ものimapアイドル受信ボックスを聞く方法
ユースケースは、サーバーを数千人のユーザーの電子メールアカウントに接続し、Javaで受信メールをスニッフィングすることです。JavaメールとSpring Integration / amqp / rabbit mqタイプのスケーラブルなインフラストラクチャを使用します。imapアイドルタイプの接続と、必要に応じてサーバー処理ノードを追加します。
単一のインバウンドチャネルは、imapアイドルインバウンドアダプタを使用すると簡単です。XMLでいくつかを構成できます。ただし、これらのアダプターの数千の永続的なリスナー/ imapidlechannelアダプターのキューが必要であり、サーバー処理のために新しいユーザー接続を動的に追加する必要がある場合。これは課題になります。また、Javaリスナーが停止したり、サーバーがこれらすべてのリスナーを再起動したり、それらの構成も再起動したり、数千の接続を再構築したり、一部の接続がアイドル受信のすべてのユーザー接続を再構築せずにアイドル受信機能を失った場合に回復したりするという障害の警告も必要です。
たくさん検索されたので歓迎されるアイデアはありますが、何も見つかりませんでしたか?これは、開いている電子メール受信接続に関する重大なスケーラビリティの問題のようです。
spring - リストを Message Spring AMQP として保存/シリアライズする
RabbitMQ を使用する Spring AMQP は初めてです。私は、この質問がより広い問題に対処していることを理解しています。コンシューマーに送信できるメッセージにオブジェクトのリストを保存したいと考えています。誰でもこの問題の簡単な解決策を提供できますか?
シリアル化が解決策になることは知っていますが、それは私が使用している単純なアプリケーションにとってはやり過ぎです。メッセージは本質的に非同期です。他のアプローチはありますか?
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 されないようにしたいだけです。