Kafka と Redis PUB/SUB の最大の違いは、Kafka が完全なシステムであるのに対し、Redis PUB/SUB は単なるスイート (ユーティリティ) であるということです。結局のところ、Redis に罪はないのですが、その主な機能は PUB ではありません/サブ。
#redis メッセージ プッシュ (分散パブリッシュ/サブスクライブに基づく) は、主に、高いリアルタイム パフォーマンスを備えたメッセージ プッシュに使用されます。 . 信頼性の保証。 (推奨学習:
Redis ビデオ チュートリアル ) その他の mq および kafka は信頼性が保証されていますが、多少の遅延が発生します (非リアルタイム システムでは遅延が保証されません)。 Redis-pub/sub は電源を切るとクリアされますが、redis-list をメッセージプッシュとして使用すると永続性はありますが、強度が弱すぎて完全に信頼できるわけではなく、失われることはありません。
別の点として、異なるトピックを表すことに加えて、redis パブリッシュとサブスクライブはグループ化をサポートしていません。たとえば、Kafka が何かをパブリッシュするとき、複数のサブスクライバーをグループ化でき、同じグループ内の 1 つのサブスクライバーのみがメッセージ: 負荷分散に使用できるメッセージ。
Redis は、まず第一に、インメモリ データベースです。これが提供する PUB/SUB 機能は、メッセージを (チャネルに基づいて) メモリに保存するため、メッセージの永続性要件が高くなく、バックエンドアプリケーション 高い購買力がある場合は、Redis PUB/SUB を使用することがより適切な使用シナリオです。たとえば、公式 Web サイトではオンライン チャット ルームの例が提供されています。チャネルは IRC のサーバーであるため、IRC をシミュレートします。ユーザーは接続を開始し、チャネルにメッセージを公開し、他のユーザーからメッセージを受信します。永続性に対するこれらの要件はそれほど高くなく、Redis PUB/SUB を使用するだけで十分です。
Kafka は、高スループットの分散送信ログを提供する完全なシステムです (Kafka Connect と Kafka Streams の提供により、現在の Kafka 公式 Web サイトは分散 A ストリーミング処理に変更されました)プラットフォームでは、Kafka の野心もここで見ることができます:-)。 p2p メッセージ キューに加えて、もちろん PUB/SUB メッセージ モデルも提供します。さらに、Kafka はデフォルトでメッセージの永続性を提供し、(少なくともほとんどの場合) メッセージが失われないようにします。さらに、消費メタデータは消費者側に保存されるため、消費者には消費に関する大きな自由度が与えられます。コンシューマーは、メッセージを順番に消費することも、以前に処理されたメッセージを再消費することもできます。これらは、Redis PUB/SUB では実行できないことです。
Redis PUB/SUB 使用シナリオ:
1. メッセージ永続性要件は高くありません
2. スループット要件は高くありません高い
3. データ損失を許容できる
4. データ量は大きくない
Kafkaの使用シナリオ:
上記以外の他のシナリオ: )
1. 高信頼性
2. 高スループット
3. 高耐久性
4. 多様な消費処理モデル
Redis 関連の技術記事の詳細については、こちらをご覧ください
Redisデータベース活用入門チュートリアル 学べるコラム!
以上がRedisとKafkaの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。