NATS Pub/Sub
その NatsEventStore socketio4jのためのイベントストアを提供します NATS コア Pub/Sub. メッセージをブロードキャストすることで複数のサーバーインスタンス間のイベント同期を可能にしますが、イベントは 一時的で永続化されないため、耐久的なリプレイが不要な軽量で低遅延のデプロイに適しています。
主な特徴
低遅延のブロードキャスト — NATS コアは接続された全ノードに迅速にメッセージを配信します
短命のイベント — メッセージは保存されません。加入者はオンライン時にのみイベントを受信します
非同期かつノンブロッキング — ディスパッチャーは Netty のイベントループ外で動作します
イベントごとのサブジェクトルーティング — イベントタイプは直接サブジェクトにマップされます
重複防止 — 同一ノード発のイベントは以下を介してスキップされます
nodeId
仕組み
publish0イベントをシリアライズして NATS のサブジェクトに送信しますsubscribe0該当するサブジェクトを監視するディスパッチャーを登録しますメッセージはリスナーに配信されます 発生元が別ノードである場合に限り
購読解除はサブスクリプションとディスパッチャーの両方をクリーンアップします
シャットダウンはすべてのアクティブなサブスクリプションを削除しますが 必要がない 共有の NATS 接続を閉じます
モード
MULTI_CHANNEL
各イベントタイプはそれぞれのサブジェクトにマップされます
デフォルト;サブジェクトが小さく分離が良好
SINGLE_CHANNEL
すべてのイベントがルーティングされます ALL_SINGLE_CHANNEL
イベントタイプ間で統一された順序付けが必要な場合
利点
👍 超低遅延の配信 👍 イベントが 必要がない 耐久性やリプレイを必要としない場合に最適 👍 非常に軽量 — 依存関係と設定が最小限 👍 既に NATS をメッセージングに使用している場合に適合
制限事項
ℹ️ イベントは 永続化されません — 見逃したメッセージは再生できません ℹ️ 加入者はイベントを受信するために接続している必要があります ℹ️ ディスパッチャーの再作成や再接続時に重複が発生する可能性があります ℹ️ コンシューマーオフセット、バックプレッシャー、ストリームのトリミングはサポートしていません(そのためには JetStream が必要で、現在開発が計画されています)
配信保証: 最多一回(At-most-once)セマンティクス。 メッセージ損失の可能性があるベストエフォート配信 — イベントリスナーは欠落や順序の乱れを許容する必要があります。
最終更新
役に立ちましたか?