ホームページ > php教程 > PHP开发 > ActiveMQ のセッション設定の関連理解

ActiveMQ のセッション設定の関連理解

高洛峰
リリース: 2016-11-22 13:14:29
オリジナル
2589 人が閲覧しました

参考ブログ投稿: http://www.cnblogs.com/SzeCheng/p/4792084.html

参考ブログ投稿: http://activemq.apache.org/Producer-flow-control.html

用語の説明:

P: プロデューサー

C: コンシューマー

サーバー: P または ActiveMQ サービス

クライアント: ActiveMQ サービスまたは C

クライアントがメッセージを正常に受信したという兆候は、メッセージが署名されていることです。メッセージを正常に受信するには、通常、次の 3 つの段階が含まれます。

1.クライアントはメッセージを受け取ります

2.クライアントはメッセージを処理します

3.メッセージは署名されています。

session = connection.createSession(Boolean.false, Session.CLIENT_ACKNOWLEDGE);##第一个参数控制事务,第二个参数控制消息
ログイン後にコピー

トランザクションのないセッションでは、メッセージがいつどのように署名されるかは、セッションの設定によって異なります。

1. Session.AUTO_ACKNOWLEDGE

クライアントが受信または onMessage から正常に戻ると、Session はクライアントによるこのメッセージの受信に自動的に署名します。

2. Session.CLIENT_ACKNOWLEDGE

クライアントは、メッセージのacknowledgeメソッドを呼び出してメッセージに署名します。

message.acknowledge();

トランザクションを伴うセッションでは、トランザクションが送信されると署名が自動的に発生します。トランザクションがロールバックされると、受信したすべてのメッセージが再度配信されます。実際、ここでの Session.CLIENT_ACKNOWLEDGE はほとんど役に立ちません。

session = connection.createSession(Boolean.TRUE, Session.CLIENT_ACKNOWLEDGE);
ログイン後にコピー
session.commit();
ログイン後にコピー

概要:

1. プロデューサーの場合: サーバーは P、クライアントは ActiveMQ サービスです。 セッションは AUTO_ACKNOWLEDGE と CLIENT_ACKNOWLEDGE に設定されますが、状況によりますが、その差はそれほど大きくありません。

2. コンシューマの場合: サーバーは ActiveMQ で、クライアントは C です。セッションは AUTO_ACKNOWLEDGE に設定され、メッセージが受信されると (受信または onMessage が正常に返される)、消費は成功し、データはキューから削除されます。データが目的の結果に正しく処理されるかどうかは気にしません。セッションが CLIENT_ACKNOWLEDGE に設定されている場合、正常に消費するには確認メソッドを手動で呼び出す必要があり、その後データはキューから削除されます。

3. P と C のセッションが相互に影響を与えないように設定されているモード。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート