Kafka/AutoMQ
その KafkaEventStore 提供します 分散ストリーミングイベントストア socketio4j 用の Apache Kafka。 これにより 水平スケーリング イベントをすべてのサーバーインスタンス間でブロードキャストして、イベントメッセージ、ルームへの参加や退出、その他の内部イベントをノード間で同期できます。
主な特徴
分散および耐障害性 — イベントは Kafka に永続化され、すべてのアクティブなノードに配信されます
非同期かつノンブロッキングな公開 — Netty のイベントループのブロックを回避します
イベントリプレイの境界 — 消費を開始するのは 最新 メッセージのみ(履歴のリプレイは行いません)
ストリーミングブロードキャストのセマンティクス — 各ノードは すべてのイベントを受け取り、ロードバランスされたメッセージではありません
重複防止 — 同じノードから発生したイベントはスキップします(
nodeIdフィルタリング)
動作方法
各パブリッシュはイベントを Kafka トピックに保存します(モードに応じて単一またはタイプごと)
サブスクライブされた各イベントタイプは専用のデーモンスレッドでポーリングされます
メッセージはローカルのリスナーにのみ配信されます、もしそれらが 別のノードから来た場合
破損した(“毒入り”)レコードはスキップされ、消費を継続します
モード
MULTI_CHANNEL
各イベントタイプがそれぞれの Kafka トピックを持ちます
デフォルト;並列性と分離が必要な場合
SINGLE_CHANNEL
すべてのイベントがルーティングされます ALL_SINGLE_CHANNEL
すべてのイベントタイプ間でグローバルな順序付けが必要な場合
利点
👍 マルチノード展開で動作します
👍 socketio4j のイベントをサーバー間で同期します
👍 安全なシャットダウンとリスナーのクリーンアップ
👍 Netty スレッドに対するバックプレッシャーはゼロ
制限事項
ℹ️ ポイントツーポイントのキューではありません — 常にブロードキャスト方式です
ℹ️ 履歴のリプレイはありません — 常に最新のオフセットからのみ消費します
ℹ️ Kafka クラスターの可用性が必要です
配信保証: 少なくとも一度配信のセマンティクス — 重複配信が発生する可能性があります;リスナーは冪等であるべきです。
最終更新
役に立ちましたか?