Kafka とは
Apache Kafka は分散型コミットログの一種で、「トピック」という概念を使ってプロデューサーとコンシューマーの間に高速かつフォールトトレランスに優れた通信を実現するものです。Kafka の提供するメッセージングは、膨大な数のイベントやトランザクションを処理できる新世代の分散型アプリケーションの開発に役立ちます。
なぜ Apache Kafka on Heroku なのか
しくみ
Kafka は、メッセージ、トピック、パーティション、プロデューサー、コンシューマー、ログ圧縮など、分散型アプリケーションの接続に必要な機能を実現するものです。
メッセージ
Kafka は メッセージ受け渡しシステムです。メッセージはイベントであり、キーを割り当てることもできます。
ブローカー
Kafka クラスターは、Kafka プロセスを実行するブローカーで構成されています。
トピック
トピックは、特定のカテゴリーに属するメッセージのストリームです。
パーティション
パーティションは、トピックのメッセージを順番に並べたログであり、各メッセージは必ずログの末尾に追加されます。メッセージには、パーティション内の位置を表すオフセットが含まれます。Kafka は、クラスター全体でパーティションを複製することにより、フォールトトレランスとメッセージの耐久性を確保します。
プロデューサー
プロデューサーは、トピックやパーティションに割り当てられたブローカーにメッセージを送信するクライアントプロセスです。プロデューサーは、キーにもとづいてパーティション機能を使用することによりメッセージの配信を制御します。
コンシューマー
コンシューマーは、ブローカーを通じてトピックのパーティションからのメッセージを読み取り、最後に読み取られたオフセットを追跡して調整や障害からの回復を実行します。コンシューマーをグループ単位でデプロイするとスケーラビリティが得られます。
ログ圧縮
ログ圧縮は、個々のキーの最新値を保持して、クライアントが状態を復元できるようにする機能です。
Apache Kafka on Heroku
大量のデータをやり取りするアプリケーションを構築
テクニカルセッション
Kafka on Heroku を使用したイベントドリブンアーキテクチャの構築
Apache Kafka を使用すれば 1 日に数十億個のイベントをストリーミングできますが、アプリのアーキテクチャのどこで使えばよいかをご存じですか? このテクニカルセッションでご確認ください。Heroku の製品エキスパートがデモを交えながら皆さんの疑問にお答えします。
ポッドキャスト
Thomas Crayford 氏が語る Apache Kafka at Heroku
2016 年 10 月 25 日に開催された Software Engineering Daily の模様をポッドキャストでお聞きください。
Apache Kafka は耐久性の高い分散型メッセージブローカーで、大量のインバウンドイベントの管理、データパイプラインの構築、マイクロサービス用コミュニケーションバスとしての使用に最適です。この Software Engineering Daily ポッドキャストでは、Heroku のエンジニア Tom Crayford が、Apache Kafka on Heroku サービスの構築、現在の課題、Heroku が Kafka に注目した理由を説明しています。