nNATS 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)セマンティクス。 メッセージ損失の可能性があるベストエフォート配信 — イベントリスナーは欠落や順序の乱れを許容する必要があります。

最終更新

役に立ちましたか?