Pub/Subメッセージの動作とプロパティ
メッセージには、パブリッシャーによって送信され、トピックを介してサブスクライバーに配信される実際のデータ オブジェクトが含まれています。たとえば、加入者の中には、会社の注文の詳細に興味がある人もいます。発行者が発行するトピックが作成されます。
パブリッシャーがトピックにメッセージをパブリッシュすると、登録済みサブスクライバーには、関心のあるメッセージがパブリッシュされたことが通知されます。 複数のメッセージの場合、メッセージは特定のトピックのキュー内のシーケンスに格納されます。
Note
同じメッセージを複数のトピックに割り当てることができます。 これは、自動生成されたIDによって一意に識別されます。
メッセージのプロパティ
メッセージ配信オプションは、 配送オプション メッセージの配信方法に関する列挙型。 以下は、によって提供される XNUMX つの配送オプションです。 NCache:
すべて: メッセージは登録されているすべての購読者に配信されます。
どれでも: メッセージは、単一の登録済みサブスクライバーに配信されます。 確認応答が受信されない場合、メッセージは次の加入者に再割り当てされます。 確認応答が受信されると、メッセージは削除されます。
メッセージの動作
Note
この機能は次の場合にのみ利用可能です エンタープライズ版.
次の基準が満たされる場合、メッセージは無効になります。
立ち退き: キャッシュでエビクションが有効になっている場合、メッセージは、LRU (最も最近使用されていない)、LFU (最も頻繁に使用されていない)、または優先度ベースのポリシーを使用してトピックからもエビクションされます。
Pub / Subトランザクションに使用されているキャッシュが通常のキャッシュに使用されているキャッシュと同じである場合、エビクションの最優先事項は常にキャッシュデータになります。
キャッシュデータが削除に使用できない場合、メッセージは削除されます。 これにより、極端な場合、またはキャッシュがPub/Sub専用の場合にのみメッセージが削除されるようになります。
満了: キャッシュ アイテムと同様に、メッセージに対して有効期限を有効にすることができます。 メッセージは有効期限が過ぎるとすぐにキャッシュから期限切れになり、同じクリーニング間隔メカニズムが使用されます。
キャッシュの消去: キャッシュがクリアされると、メッセージはキャッシュ アイテムとともに削除されます。
キャッシュの再起動: キャッシュのクリアと同様に、キャッシュが再起動されるとキャッシュの内容はクリアされます。 これには、すべてのトピックとそこに含まれるメッセージも含まれます。
保管と流通
メッセージは、トポロジに基づいてノード間で分散されます。
レプリカのパーティションおよびパーティショントポロジの場合、ハッシュベースの分散が使用されます。
レプリケート トポロジの場合、メッセージはクラスター化キャッシュのすべてのノードにレプリケートされます。 ただし、コーディネーター ノードはメッセージ操作を担当します。
ミラー トポロジの場合、メッセージはアクティブ ノードにパブリッシュされ、それに応じてパッシブ ノードに複製されます。
メッセージ ストアがエビクションに近づくと、ストアがいっぱいでエビクションが開始されたことを示すイベントが記録されます。
メッセージにはキャッシュメモリのオーバーヘッドがあります。 したがって、キャッシュサイズを計算する際には、メッセージサイズが考慮されます。
暗号化と圧縮
Note
この機能は次の場合にのみ利用可能です エンタープライズ版.
キャッシュ レベルで構成された暗号化と圧縮は、トピック メッセージ ペイロードにも適用されます。
状態転送
状態転送の場合、メッセージがクラスター内の別のノードに移動すると、メッセージが最終的に保存されるノードが配信を担当します。
Note
状態の転送中にサブスクライバーが重複したメッセージを受信する可能性があります。
注文したメッセージ
Note
この機能はでのみ利用可能です NCache 5.2以降.
NCache は、メッセージのシーケンスがクライアント側で維持される、順序付けされたメッセージをサポートするようになりました。 ユーザーは、メッセージのチャンクのシーケンス名を指定でき、順序付けされたメッセージは、発行された順序とまったく同じ順序でサブスクライバーに配信されます。シーケンス文字列は、順序付けされたメッセージのチェーンで同じである必要があります。 シーケンス文字列を使用すると、すべてのメッセージが Location Affinity メカニズムを使用して同じノード上に存在します。
順序付けされたメッセージの重要な特性は次のとおりです。
同じシーケンスのパブリッシャーからのメッセージは、単一のキャッシュノードに存在します。
Status
DeliveryOption
が Any に設定されている場合、同じシーケンスのすべての順序付けされたメッセージが同じサブスクライバに配信されます。 特定の加入者が接続を失ったり利用できなくなった場合、この目的のために新しい加入者が再割り当てされます。 ただし、DeliveryOption
が [すべて] に設定されている場合、同じシーケンスのすべての順序付けされたメッセージがすべてのサブスクライバに配信されます。状態転送の場合、順序付けられたメッセージは順序を失い、順序を維持せずに公開される可能性があります。
順序付けされたメッセージは、公開APIの同期モードを使用してのみ公開できます。 バルクおよび非同期API呼び出しはサポートされていません。
その他のリソース
NCache 上のPub/Subのサンプルアプリケーションを提供します GitHubの.
も参照してください
キャッシュ内のイベント通知
Pub/Subトピック
トピックへの公開メッセージ
トピックメッセージを購読する
連続クエリ