今日の世界では、 データが主成分です インターネットアプリケーションの、通常は以下を含みます:
- ページの訪問とクリック
- ユーザーアクティビティ
- ログインに対応するイベント
- いいね、シェア、コメントなどのソーシャルネットワーキング活動
- アプリケーション固有の指標(ログ、ページの読み込み時間、パフォーマンスなど)
この データを使用してリアルタイムで分析を実行できます さまざまな目的を果たしますが、その一部は次のとおりです。
- 広告の配信
- 異常なユーザー行動の追跡
- 関連性に基づいて検索を表示する
- 以前のアクティビティに基づいた推奨事項の表示
問題: データはさまざまなソースからさまざまな形式で生成されるため、すべてのデータを収集するのは簡単ではありません。
解決: この問題を解決する方法の1つは、メッセージングシステムを使用することです。メッセージングシステムは、メッセージの助けを借りて、分散アプリケーション間のシームレスな統合を提供します。
配列ソートc ++
Apache Kafka:
Apache Kafkaは、元々LinkedInで開発され、後にApacheプロジェクトの一部となった分散パブリッシュサブスクライブメッセージングシステムです。 Kafkaは高速で、機敏で、スケーラブルで、設計により分散されています。
カフカのアーキテクチャと用語:
トピック: 特定のカテゴリに属するメッセージのストリームはトピックと呼ばれます
プロデューサー: プロデューサーは、トピックにメッセージを公開できる任意のアプリケーションにすることができます
消費者: コンシューマーは、トピックをサブスクライブしてメッセージを消費する任意のアプリケーションです。
ブローカー: Kafkaクラスターはサーバーのセットであり、各サーバーはブローカーと呼ばれます
Kafkaはスケーラブルであり、複数のタイプのクラスターを作成できます。
- シングルノードシングルブローカークラスター
- シングルノードマルチブローカークラスター
- 複数ノード複数ブローカークラスター
シングルノードシングルブローカー
ZooKeeperの役割は何ですか?
各Kafkaブローカーは、ZooKeeperを使用して他のKafkaブローカーと調整します。プロデューサーとコンシューマーは、ZooKeeperサービスから、新しいブローカーの存在またはKafkaシステムでのブローカーの障害について通知されます。
シングルノードマルチブローカー
Linux用の最高のjavaide
複数のノード複数のブローカー
Kafka @ LinkedIn
LinkedInNewsfeedはKafkaを利用しています
LinkedInの推奨事項はKafkaによって提供されています
LinkedInの通知はKafkaによって提供されています
注意: これとは別に、LinkedInは、ログの監視、パフォーマンスメトリック、検索の改善など、他の多くのタスクにKafkaを使用しています。
他に誰がカフカを使用していますか?
DataSift: DataSiftは、Kafkaを監視イベントのコレクターとして使用し、ユーザーのデータストリームの消費をリアルタイムで追跡します
ウーガ: WoogaはKafkaを使用して、中央の場所にあるすべてのFacebookゲーム(さまざまなプロバイダーでホストされている)からの追跡データを集約して処理します
スポンジセル: Spongecellは、Kafkaを使用して、リアルタイムアプリケーションとETLアプリケーションの両方を駆動する分析および監視パイプライン全体を実行します
Loggly: Logglyは、世界で最も人気のあるクラウドベースのログ管理です。ログ収集にはKafkaを使用します。
比較研究:Kafka対ActiveMQ対RabbitMQ
Kafkaのストレージ形式はより効率的です。平均して、各メッセージのオーバーヘッドはKafkaでは9バイトですが、ActiveMQでは144バイトです。
ActiveMQとRabbitMQの両方で、ブローカーはディスクに書き込むことですべてのメッセージの配信状態を維持しますが、Kafkaの場合はディスクへの書き込みがないため、高速になります。
Pythonで分割関数を使用する方法
Kafkaは本番環境で広く採用されており、現実の問題を解決するための有望なソリューションのようです。 Apache Kafkaトレーニングは、リアルタイム分析のキャリアで仲間よりも先を行くのに役立ちます。 ApacheKafkaチュートリアルを始めましょう ここに 。
質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。
関連記事: