Hazelcast Pub/Sub
その HazelcastPubSubEventStore は、socketio4j の分散イベントストアを提供します(使用技術: Hazelcast ITopic)。 クラスタノード間でイベントをブロードキャストすることで水平スケーリングを可能にし、ルームの参加・退出、状態変化、ACK、およびその他の内部イベントを複数のサーバーインスタンス間で同期します。
主な特徴
分散イベントブロードキャスト — すべてのノードが公開されたすべてのイベントを受信します
非同期ノンブロッキング配信 — Hazelcast が Netty のイベントループ外で配信を管理します
イベントごとのトピック対応 — イベント種別ごとのマルチチャネル分離を可能にします
シンプルな統合 — リングバッファの設定なしでコアな Hazelcast 機能を使用します
重複防止 — 同一ノード発のイベントは
nodeIdフィルタリング
仕組み
イベントは Hazelcast ITopic インスタンス(モードにより1つまたは複数)に公開されます
各サブスクライブされたサーバーはイベント配信のために Hazelcast メッセージリスナを登録します
ローカルリスナは外部発信のイベントのみを受け取ります(
nodeId不一致)リスナ登録はイベント種別ごとに追跡され、制御された購読解除とシャットダウンを可能にします
モード
MULTI_CHANNEL
各イベント種別はそれぞれの Hazelcast トピックにマップされます
デフォルト;イベントトラフィックを分離します
SINGLE_CHANNEL
すべてのイベントがルーティングされます ALL_SINGLE_CHANNEL
異なる種別間で順序を保ちたい場合
利点
👍 マルチノード構成で動作します 👍 Hazelcast をクラスタリングに既に使用している場合は追加のブローカー不要 👍 設定と統合が簡単 👍 クリーンな購読解除とシャットダウン処理 👍 分散状態に Hazelcast を既に使用しているアプリケーションに最適
制限事項
ℹ️ Hazelcast トピックのバッファリング以外にメッセージ永続化はない — 再起動時にメッセージが失われる可能性があります ℹ️ 順序はトピック単位であり、すべてのイベント種別を通したグローバルな順序ではありません ℹ️ 履歴の再生はなし — リスナは購読後のメッセージのみ受け取ります ℹ️ フェイルオーバー時に重複配信が発生する可能性があります
配信保証: 少なくとも一度配信のセマンティクス — イベントリスナは重複メッセージを安全に処理するために冪等である必要があります。
最終更新
役に立ちましたか?