Confluent Platform 7.0 と Cluster Linking でクラウドへのリアルタイムブリッジを構築 | ブログを読む

Apache Kafka® とは?

Apache Kafka は、1日当たり数兆件のイベントに対応可能なコミュニティ/分散型イベントストリーミングプラットフォームです。抽象化された分散型コミットログである Kafka は、当初はメッセージキューとして捉えられていました。2011年に LinkedIn でオープンソースベースで開発されて以降、メッセージキューから本格的なイベントストリーミングプラットフォームへと急速に進化を遂げてきました。

Apache Kafka を生んだ開発者チームによって創設された Confluent は、Confluent Platform という形で最も完成度の高い Kafka ディストリビューションを提供しています。Confluent Platform のコミュニティ版/商用版機能を追加することで Kafka をさらに改善し、プロダクション環境において運用者と開発者のストリーミング体験を大規模に向上させることが可能となります。

Apache Kafka のポジション

数千社が Kafka を活用

Kafka の特長

パブリッシュ + サブスクライブ

基盤となる控えめでイミュータブルなコミットログから、パブリッシュ/サブスクライブ型で多数のシステムやリアルタイムアプリケーションとデータをやり取り。メッセージングキューとは異なり、高度にスケーラブルでフォールトトレラントな分散型システムである Kafka は、Uber での乗客とドライバーのマッチング管理、British Gas のスマートホームへのリアルタイム分析と予測メンテナンス提供、LinkedIn 全体での無数のリアルタイムサービスの実行などに展開されています。ユニークなパフォーマンスで、1つのアプリから全社での展開まで、あらゆる規模に対応します。

保管

分散型データベースに一般的な抽象化された分散型コミットログ、Apache Kafka が耐久性に優れたストレージを実現。複数のノードにデータを分散し、単一のデータセンターや複数の可用性ゾーンで高可用性のデプロイを実現できる Kafka が「信頼できる唯一の情報源」として機能します。

処理

イベントストリーミング・プラットフォームには、データの到着と同時にそのデータを操作できる機能が欠かせません。Apache Kafka 内の Streams API は、強力かつ軽量なライブラリで、集計、ウィンドウパラメータの作成、ストリーム内のデータ結合などの同時処理が可能です。何よりも、Kafka をベースに Java アプリケーションとして構築されているため、メンテナンス対象のクラスタを増やすことなくワークフローを最適な状態に保てます。

Kafka: The Definitive Guide

リアルタイムのデータフィードを実現する分散型のパブリッシュ/サブスクライブキュー、Apache Kafka を最大限に活用する方法をご紹介。Kafka の仕組みと設計思想が包括的に理解できる一冊です。

ストリーミングのためのツールセット

入手しやすく、Producer、Consumer、Streams、Connect の4つの API が揃った強力な Event Streaming Platform を提供する Apache Kafka は、開発者に人気のツールです。

一般に、開発者の Kafka 活用は単一のユースケースから始まります。例としては、現在のワークロードに対応できないレガシーデータベースを保護するメッセージバッファとしての Apache Kafka の使用のほか、Connect API でこうしたデータベースと付随する検索インデックスエンジンとの同期を保ち、Streams API でデータを到着時に処理し、アプリケーションに直接集計を表示する例などが挙げられます。

言い換えれば、Apache Kafka と関連 API の活用により、データドリブン型のアプリ構築や複雑なバックエンドシステムの管理がシンプルになります。Kafka の導入で、データが常にフォールトトレラントで再生可能、リアルタイムであるという安心が得られ、データの処理や保管に加え、リアルタイムのデータにアプリとシステムを接続する単一の Event Streaming Platform を通じて迅速な構築が実現します。