Kafka の適用可能なシナリオをネットワーク全体で最も包括的に図解で解説します。

Kafka の適用可能なシナリオをネットワーク全体で最も包括的に図解で解説します。

メッセージングシステム

メッセージング システムは、データ プロデューサーの分離や未処理メッセージのキャッシュなど、さまざまなシナリオで使用されます。 Kafka は従来のメッセージング システムの代替として使用できます。従来のメッセージング システムと比較して、Kafka はスループットと可用性が優れているため、大規模なメッセージの処理に適しています。

経験則として、メッセージングでは通常、スループット要件は低くなりますが、エンドツーエンドのレイテンシが低くなる可能性があり、多くの場合、Kafka の信頼性の高い耐久性のあるメカニズムに依存します。

この点で、Kafka は従来のメッセージング システム (ActiveMQ および RabbitMQ) に匹敵します。

ストレージシステム

Kafka に書き込まれたデータはディスクに保存され、冗長バックアップが行われます。 Kafka では、プロデューサーは確認を待つことができます。構成により、すべてのレプリケーションが完了するまで書き込みが成功したとは見なされないようにすることができ、データの可用性が確保されます。

Kafka はストレージを重視しており、クライアントが読み取り位置を独自に制御できるようにします。 Kafka は、高パフォーマンス、低レイテンシ、高可用性のログ送信ストレージを提供できる特別なファイル システムと考えることができます。

ログ集約

ログ システムには、通常、ログの収集、クリーニング、集約、保存、表示の機能が必要です。 Kafka は、他のログ集約ソリューションの代わりとしてよく使用されます。

Scribe や Flume と比較すると、Kafka は同等に優れたパフォーマンス、より堅牢なスタッキング保証、およびエンドツーエンドの低レイテンシを提供します。ログが記録されるため、Kafka でのログ集約のコストが高くなります。

Kafka はログを実現できます:

  • クリーニング(コーディングが必要)
  • 集約(信頼性は高いが、ディスクを地上に設置する必要があるため高価)
  • ストレージ

ELK は人気のあるログ記録システムです。 Kafka の協力により、より成熟したソリューションが実現します。 ELK テクノロジー スタックでは、Kafka は主にバッファの役割を果たし、必要に応じてログを収束できます。

写真

システム監視とアラーム

ログ分析システムと同様に、監視とトラブルシューティングのためにシステムメトリックを収集する必要があります。違いは、メトリックは構造化データであるのに対し、ログは非構造化テキストであることです。メトリクス データは Kafka に送信され、Flink で集計されます。集計データは、リアルタイム監視ダッシュボードや PagerDuty などのアラート システムによって使用されます。

写真

コミットログ

Kafka は分散システムの外部コミット ログとして機能できます。ジャーナルは、ノード間でデータを複製するのに役立ち、障害が発生したノードからデータを回復するための再同期メカニズムとして機能します。

Kafka のログ圧縮機能は、この使用法をサポートするのに役立ちます。

ウェブサイトアクティビティの追跡 - 推奨システム

Kafka の本来の目的は、ユーザー行動追跡パイプラインを、リアルタイムのパブリッシュ/サブスクライブ ソースのセットに再構築することです。ウェブサイトのアクティビティ (ウェブページの閲覧、検索、その他のユーザー操作) を中央トピックに公開します。各アクティビティ タイプはトピックに対応しています。これらのサブスクリプション ソースに基づいて、リアルタイム処理、リアルタイム監視、Kafka データの Hadoop またはオフライン データ ウェアハウス システムへのバッチ ロード、オフライン データ処理、レポート生成などの一連のユース ケースを実現できます。

各ユーザーは Web を閲覧する際に大量のアクティビティ情報を生成するため、アクティビティ追跡データの量は通常非常に大きくなります。 (Kafkaの実用化)

Amazon のような電子商取引サイトでは、過去の行動や類似のユーザーを使用して製品の推奨を計算します。次の図は、推奨システムがどのように機能するかを示しています。 Kafka は生のクリックストリーム データを送信し、Flink はそれを処理し、モデル トレーニングはデータ レイクからの集約データを使用します。

写真

これにより、各ユーザーに対する推奨事項の関連性を継続的に改善することができます。 Kafka のもう 1 つの重要な使用例は、リアルタイムのクリックストリーム分析です。

ストリーム処理 - Kafka ストリーム API

Kafka コミュニティは、データの生成と消費のメカニズムを提供するだけでは不十分であると考えています。また、ストリーミング データに対するリアルタイム処理メカニズムも提供する必要があります。

0.10.0.0 以降、Kafka は、Stremrs API を提供することで、軽量でありながら強力なストリーム処理を提供します。実際、ストリーム参照における次のようないくつかの厄介な問題を解決するのに役立つのは、Streams API です。

  • 順序が乱れたデータの処理
  • コード変更後にデータを再度処理する
  • ステートフルストリーミング計算を実行する

Streams API のストリーム処理は、入力トピックからデータを消費し、さまざまな処理を実行し、結果をターゲット トピックに書き込むという複数の段階で構成されています。 Streams API は、Kafka が提供するコア プリミティブに基づいて構築されています。入力と出力には Kafka のコンシューマーとプロデューサーを使用し、状態の保存には Kfka を使用します。

ストリーム処理フレームワーク: Flink、spark streaming、Storm は、正統的なストリーム処理フレームワークです。 Kafka は、ストリーム処理において、ストリーム ストレージとしての役割を果たします。

CDC (変更データキャプチャ)

  • CDCは、レプリケーションまたはキャッシュ/インデックスの更新のためにデータベースの変更を他のシステムにストリーミングします。
  • Kafka は、データ パイプラインを構築するための優れたツールでもあり、さまざまなソースからデータを取り込み、処理ルールを適用し、データをウェアハウス、データ レイク、またはデータ グリッドに保存するために使用できます。
  • 以下に示すように、トランザクション ログは Kafka に送信され、ElasticSearch、Redis、セカンダリ データベースによって取り込まれます。

写真

画像

システム移行

レガシー サービスのアップグレードは困難です。

  • 古い言語
  • 複雑なロジック
  • 検査不足

MQ を使用するとリスクを軽減できます。

注文サービスをアップグレードするには、古い注文サービスを更新して、Kafka からの入力を消費し、結果を ORDER トピックに書き込みます。新しい注文サービスは同じ入力を消費し、結果を ORDERNEW トピックに書き込みます。

写真

調整サービスは、ORDER と ORDERNEW を比較します。同じであれば、新しいサービスはテストに合格します。

イベントソーシング

イベントがシステム内の第一級オブジェクト (つまり、真実のソース) として扱われる場合、保存されたアプリケーションの状態は一連のイベントとなり、システム内の他のすべてはこれらの永続的で不変のイベントに基づいて再計算できます。

イベント ソーシングは、一連のイベントにおける状態の変化をキャプチャすることです。通常、Kafka は主要なイベント ストアとして使用されます。障害、ロールバック、または状態の再構築が必要な場合、Kafka からのイベントはいつでも再適用できます。

<<:  分散ロックのウォッチドッグメカニズムの詳細な説明

>>:  Amazon、AWS「サーバーレス」クラウドサービスの改善を発表:データベース容量をオンラインで拡張可能、クラウドキャッシュ技術「マイクロ秒遅延」

推薦する

機密情報プラットフォームがモバイルインターネットとどのようにつながるか

モバイルインターネットのトレンドの中で、多くのインターネット製品がそのペースに追いつくのは困難になっ...

海外のモデルは信頼性が低く、国内のクラウドファンディングは変革を迫られる

文/捜狐IT国人中国最大のクラウドファンディングプラットフォームの構築には3年かかりました。現在、D...

クラウドコンピューティングは銀行業務に何をもたらすのでしょうか?

クラウド コンピューティングは、現代の銀行業務の発展に大きな変化をもたらしました。実際、クラウド コ...

インターネットデータエンジニア:ユーザー情報を宝物に変える

画像提供:CFPネット生活におけるあらゆる小さな行動、検索ボックスに入力するキーワード、何気ないチェ...

新しい CN ドメイン名ポリシーがドメイン名登録者に与える影響

今月28日、CNNICは新しいドメイン名政策である「中国インターネットネットワーク情報センタードメイ...

VMware は、マルチクラウドの機会を捉え、無限の可能性を引き出すパートナーをサポートします。

エンタープライズ ソフトウェアにおける世界有数のイノベーターである VMware (NYSE: VM...

Linux ユーザー ガイド: KVM で Virtualbox 仮想マシンを使用する方法

[[376370]] [51CTO.com クイック翻訳] VirtualBox から KVM ハイ...

2012 年バレンタインデーにおける主要な B2C ウェブサイト プロモーションの一覧

西洋の「バレンタインデー」は、長年輸入され、現在では深くローカライズされており、電子商取引会社のター...

Kubernetes でゼロからオブザーバビリティを構築する

この記事では、Grafana、Prometheus、Loki、Tempo、OpenTelemetry...

SEOVIPウェブサイト改訂後の微妙な変更

実は最近、SEOVIP の Web サイトに注目しています。結局のところ、あらゆる特殊な単一ページの...

新しいウェブサイトは、具体的にどのような点で古いウェブサイトを上回るべきでしょうか?

新しいウェブサイトが古いウェブサイトを上回ります。これは多くの SEO 担当者が遭遇する問題ですが、...

KLM を使用してウェブサイトのフォーム入力効率を評価する方法

編集者: S++ チーム多くの場合、ユーザー テストを通じてフォームの効率性をテストすることは困難で...

ウェブサイト運営のための活動をどのように組織化するかについての簡単な議論

ウェブサイトの運営には、多くの場合、いくつかのアクティビティが必要です。アクティビティを立ち上げるの...