white clouds under blue sky at daytime
04 - 25 - 2024

Part 1:コンフルエント(CFLT):Kafkaの高スループットとメッセージングアーキテクチャのトレードオフを徹底解説!

コンヴェクィティ  コンヴェクィティ
  • KafkaやRabbitMQのようなメッセージ・キューイング(MQ)システムにおけるトレードオフについて概説し、スループット対予測可能性に焦点を当て、メッセージ処理におけるそれぞれの能力の違いを例示している。
  • また、メッセージ・キュー・システムにおける様々な配信モデルについて議論している。
  • メッセージ・キュー・アーキテクチャの選択は、システムのパフォーマンスと運用効率に影響し、競争の激しいデータ処理環境における技術的な意思決定に影響を与える。

※「Part 1:コンフルエント(CFLT)データストリーミングリーダーの強み(競争優位性)分析と今後の成長見通し・将来性を徹底解説!」の続き

スループットと予測可能性

メッセージ・キュー(MQ)システムを含め、技術にはトレードオフが伴う。

Pub-Subは、より低コストで高いスループットを提供するが、 キューのような予測可能性に欠けている。

例えば、学生はジャーナル(Pub-Sub)に掲載された試験のスコアを確認しないかもしれない。

一方、教務補助員(キュー)から個人的に伝えられるスコアは、確実に学生に届くことが保証されている。

Pub-Subは、より速くスコアを公開することができるが、学生の受け取りは不確実である。

グラフはKafkaの初期パフォーマンスとRabbitMQの比較である。

Kafkaは、パーティションやシーケンシャル操作などの機能により高スループット向けに設計されており、スピードではRabbitMQを大きく上回っている。

しかし、トランザクションメッセージ、遅延メッセージ、デッドレターキューのサポートがないため、予測可能性では妥協している。

デリバリー保証:最低でも1回 vs 最大でも1回 vs 正確に1回

異なるメッセージング・キュー(MQ)は、「最低でも1回」、「最大でも1回」、「正確に1回」といった、様々なデリバリー・モデルを採用している。

そして、これらは分散システムにおけるデータフローの信頼性と一貫性に影響を与える。

「最低でも1回」モデルでは、メッセージが確実に宛先に到達するが、重複する可能性がある。

一方、「最大でも1回」モデルでは、メッセージを失うリスクはあるが、重複を防ぐことができる。

「正確に1回」モデルは、各メッセージを一度だけ配信するもので、重要なデータ整合性シナリオに最適である。

これらのモデルを理解することは、Kafkaの背後にある商業体であるコンフルエント(CFLT)への投資家にとって、同社のリアルタイムデータ処理における競争力を評価するために不可欠である。

下記に例を挙げていきたい。

最低でも1回

ある大学の管理システムは、学生に試験の成績を確実に通知する。

同様に、eコマース・プラットフォームは、受領を保証するために注文確認を複数回送信することがあり、重複のリスクを受け入れる。

最大でも1回

この場合、受験生は得点通知を一度だけ受け取ることになり、重複は避けられるが、不達のリスクがある。

産業界では、IoTセンサーがダッシュボードにデータを送信するのは一度だけで、ログに重複が発生するよりはデータ損失を許容できるかもしれない。

正確に1回

前のモデルの長所を組み合わせることで、エラーのない1回のメッセージ配信が保証される。

二重請求のような問題を防ぐため、金融取引では非常に重要である。

メッセージ・キュー・システムの比較

Kafkaは「最低でも1回」または「最大でも1回」をサポートしており、シンプルなため一般的である。

一方で、RabbitMQは「正確に1回」を提供し、パフォーマンス上の欠点を回避するために、より多くのエンジニアリングの労力を必要とする。

順序付けと並列性

逐次メッセージ配信と同時処理はトレードオフの関係にある。

Kafkaは並列処理に優れており、ソーシャルメディアフィードのようなアプリケーションに適している。

RabbitMQは順序配信を好むため、デジタル広告のリアルタイム入札のような厳密な順序を必要とするアプリケーションに適している。

まとめると、メッセージ・キュー・アーキテクチャの選択は、システムパフォーマンス、データ整合性、および運用効率に影響し、技術インフラの決定に影響を与える。

メッセージ・キュー・システムに関する考察

・メッセージの順序:メッセージの消費順序は保証されているか?

・スケーリング:パフォーマンスの低下時にシステムを迅速にスケールアップできるか、または余剰リソースが未使用の場合にスケールダウンできるか。

・メッセージの保持:消費されたメッセージがキューに保持される時間は?

・フォールト・トレランス:メッセージの消費に失敗した場合、場合によっては修正アクションを生成するための非同期システムを含む、最終的な消費を保証するシステムがあるか?

・メッセージのタイミング:メッセージが保持される期間とメッセージ配信の遅延に関するもの。

・スループット:下流のボトルネックを引き起こすことなく、システムが同時に処理できるメッセージの最大数は?これはハードウェアの能力、システム構成、アーキテクチャに依存する。より高いスループットと下流のキャパシティを圧迫するリスクとのバランスをとることが重要である。

・メッセージのルーティング:メッセージは特定の条件を満たした場合にのみルーティングされ、消費されるのか?

主要製品とオープンソースプロジェクトの概要

はじめに

スノーフレーク(SNOW)とは異なり、コンフルエント(CFLT)にはパブリックマーケットでの直接的な競合はいない。

コンフルエントの主な競合は、Kafkaを自己管理している企業やクラウド・ハイパースケーラのメッセージ・キュー製品である。

ハイパースケーラのマネージドKafkaに対する懸念はあるものの、同社がKoraを発表したことで、この脅威は減少するだろう。

競合分析

ActiveMQとRabbitMQは、Kafkaとは目的もアーキテクチャも大きく異なり、Kafkaに最も近い直接の競合はPulsarである。

競合の詳細

AWS SNS & SQS:AWSは統合されたメッセージ・キューイング・サービスを提供している。SNSはトピックベースのファンアウト/ファンインメッセージング、SQSは純粋なキューサービスである。どちらもスケーラブルで、簡単に統合できる。

Google Pub/Sub:メッセージキューとトピックを扱い、AWSのサービスと同様の機能を提供するが、メッセージ配信にきめ細かさを加えるサブスクリプションレイヤーを含む。メッセージの順序付けや、ルーティングやプライオリティのような高度な機能はない。

AWS EventBridge:従来のキューイングとは異なり、サブスクリプションではなくルールに基づいてイベントをルーティングすることで、動的なイベントドリブンアーキテクチャを可能にするマネージドイベントバス。

Redis Streams:Append-only コマンドを使用して、FIFO オーダリング、コンシューマーグループ、確認応答によるオンザフライでのトピック作成とメッセージ追加をサポート。

Apache Kafka:トピック内でイベントを分割し、FIFO順序を維持する一般的なブローカー。

RabbitMQ:様々なプロトコルをサポートし、確認応答による信頼性の高い処理を提供する。

NSQ:トピックとチャネルをサポートする、分散ノードによるフォールトトレラントな分散キュー。

NATS:トピックベースのブロードキャストと分散キューをサポート。

ActiveMQ:メッセージの永続性やクラスタリングなどの機能を備えたオープンソースのブローカー。

IBM MQ:堅牢でスケーラブル、かつ信頼性の高いメッセージ配信で知られるエンタープライズグレードのシステム。

Azure Service Bus:キューとトピック・サブスクリプションを提供し、メッセージ・オーダリングとAzureサービスとの統合を特徴とする。

Apache Pulsar:ストリーミングとキューイングの統一モデルで、マルチテナンシーと永続ストレージを提供するスケーラブルで低レイテンシーのシステム。

RocketMQ:Alibabaによって開発され、Apache ZooKeeperをより軽量な非同期ネームサーバーに置き換え、パフォーマンスと耐障害性を向上させた。

アーキテクチャのトレードオフ

Kafka:大容量のリアルタイム・データ・ストリームに優れているが、グローバルなメッセージ順序付けと遅延配信に欠ける。

RabbitMQ:様々なメッセージング・パターンにおける信頼性の高い配信に重点を置いているが、大容量ストリームでは遅延が大きくなる可能性がある。

Pulsar:KafkaとRabbitMQの強みを非連結アーキテクチャで組み合わせ、動的スケーリングと複雑なメッセージング・パターンをサポートするが、学習曲線はより厳しいものとなっている。

結論

KafkaとRabbitMQがその役割を確立している一方で、Pulsarは次世代の可能性を示している。

しかし、Kafkaの後継となるかは不透明であり、特にKoraのようなコンフルエント(CFLT)のイノベーションには注意が必要である。

Part 2では、これらの技術が同社のビジネス戦略と市場ポジションにどのような影響を与えるかについて掘り下げていきたい。

その他のテクノロジー銘柄関連レポート

1. ① Part 1:クラウドフレア / NET:サイバーセキュリティ銘柄のテクノロジー上の競争優位性(強み)分析と今後の将来性(前編)

2. ①ルーブリック / RBRK(IPO・新規上場):サイバーセキュリティ銘柄の概要&強み分析と今後の株価見通し(Rubrik)

3. パロアルトネットワークス / PANW / 強気:サイバーセキュリティ銘柄のテクノロジー競争優位性分析と将来性 - Part 1

また、私のその他のテクノロジー関連銘柄のレポートに関心がございましたら、是非、こちらのリンクより、私のプロフィールページにアクセスしていただければと思います。