18.4. 非同期送信承認


非トランザクションセッションを使用し、サーバーに送信される各メッセージがサーバーに到達された保証が必要な場合は、「非トランザクションメッセージ送信の保証」 で説明されたように、サーバーがメッセージを受け取り、永続化し、応答を送り返すまで送信コールをブロックするよう HornetQ を設定できます。これは有用ですが、パフォーマンスが大幅に低下します。各送信コールは最低ネットワークラウンドトリップ (RTT) の時間、ブロックする必要があります。送信のパフォーマンスはネットワークのレイテンシーにより制限され、ネットワーク帯域幅により制限されません
これに対処するために、HornetQ は非同期送信承認と呼ばれる機能を提供します。この機能を使用すると、一方向にブロックしたり、メッセージを別のストリームで受け取ったことの承認をサーバーから非同期に取得したりせずに、メッセージを送信するよう HornetQ を設定できます。送信と送信の承認を分けることにより、システムはネットワーク RTT により制限されませんが、ネットワーク帯域幅により制限されます。結果的に、ブロックする方法を使用するよりも優れたスループットを達成できます (同時に、メッセージがサーバーに正常に到達したことが確実に保証されます)。
送信承認のウィンドウサイズは、接続ファクトリーまたはクライアントセッションファクトリーの confirmation-window-size パラメーターにより決定されます。この詳細については、32章クライアントの再接続とセッションの再割り当て を参照してください。

18.4.1. 非同期送信承認

コア API により機能を使用するには、インターフェース org.hornetq.api.core.client.SendAcknowledgementHandler を実装し、ClientSession でハンドラーインスタンスを設定します。
ClientSession を使用して通常どおりメッセージを送信します。メッセージがサーバーに到着すると、サーバーは送信の承認を非同期で送り返します。HornetQ はハンドラーの sendAcknowledged(ClientMessage message) メソッドを呼び出し、送信されたメッセージへの参照を渡します。
非同期送信承認を有効にするには、confirmation-window-size が正の整数値に設定されるようにします (バイト単位で指定)。たとえば、10485760 (10 メビバイト) になります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat