Apache Kafka on Heroku を使用した
イベント駆動型アーキテクチャの構築
テクニカルセッション
Apache Kafka は、1 日に数十億件のイベントを処理できるアーキテクチャを構築するためのバックボーンです。Apache Kafka が開発ロードマップのどこに位置付けられるかをデベロッパーアドボケイトのクリスキャッスルが解説します。
Kafka on Heroku の概要に関するテクニカルセッションのライブデモをご覧ください。
Heroku プロダクトチームのランドフィッツパトリックが Q&A セッションで皆様からの質問に答えている模様をぜひお聞きください。
セッションを見る
Apache Kafka on Heroku の詳細をお知りになりたいですか? 。ドキュメントをご確認ください。
セッションで使用したスライド
このセッションでは、以下の内容を取り上げます。
- Apache Kafka とはどのようなものであり、Heroku でどのように使用すればよいか
- Kafka はどのようにしてデータを不変のイベントストリームとしてモデル化し、高度な並行処理をアプリケーションで可能にするか
- 高スループットのインバウンドイベントの管理やデータパイプラインの構築など、スタック全体に及ぶスケールの問題を解決するために、Kafka をどのように活用できるか
- 出席者から寄せられた質問への回答(Q&A の例はこちら)
次のステップ
- Kafka on Heroku 製品の詳細、またはドキュメントをお読みください。
- Apache Kafka on Heroku に関するお問い合わせは、こちらまでお寄せください。
スピーカー
セッション Q&A
以下は、オンラインセミナーの中で挙がった一般的な質問とその回答の例です。
その他にも何かご質問がございましたら、お気軽にお問い合わせください。
Q:新しくリリースされた Apache Kafka バージョン X には、すばらしい機能がいくつか追加されていますが、これらの新機能は Heroku でサポートされていますか?
A:Heroku では、Kafka の新バージョンがリリースされると同時に、できるだけ早く新バージョンをサポートできるよう取り組んでいます。新バージョンへの対応が完了した後は、CLI コマンド heroku kafka:upgrade [CLUSTER] --version TARGET_VERSION
. を使用することで、ダウンタイムなしに Apache Kafka on Heroku クラスタをアップグレードできます。サポートされているバージョンの詳細については、「Kafka のバージョンとクライアント」をご覧ください。
Q:多くのユースケースで複数のアプリケーションによるイベントの使用と作成が保証されていますが、Apache Kafka on Heroku アドオンは複数のアプリケーションで共有できますか?
A:はい、共有できます。詳細は、アドオンのページをご覧ください。
Q:お勧めのクライアントライブラリを教えてください。
A:推奨されるクライアントライブラリは、Kafka ドキュメントの「対応言語」セクションに記載されています。
Q:Apache Kafka on Heroku では、クライアント接続の認証とトラフィック暗号化がどのように行われているのですか?
A:Kafka への接続では SSL 暗号化と認証がサポートされます。詳細については、「Kafka クラスタへの接続」をご覧ください。
Q:Apache Kafka ではなく、RabbitMQ など、従来のメッセージキューの使用が推奨されるのは、どのような場合ですか?
A:メッセージキューを単なるキューとして使用する場合や、スループットが比較的低い場合など、耐久性が求められていないユースケースでは、Kafka ではなく RabbitMQ などを使用することをお勧めします。Kafka には、ストリームデータの構築やスループットの向上、イベントを不変レコードとして永続化するためのオプションが多数用意されています。Kafka はよりシンプルなシステムであり、さまざまな点で、柔軟性が高く、堅牢なスケーラビリティを備えています。
Q:Apache Kafka と Enterprise Service Bus(ESB)のコンセプトは似ていますか?
A:Kafka は大半の ESB)のコンセプトは似ていますか? A:Kafka は大半の EBS よりも、アーキテクチャの面で比較的シンプルになっています。また、Kafka よりも、アーキテクチャの面で比較的シンプルになっています。また、Kafka は大半の ESB が備えていない耐久性(持続性と分散性)と高スループットの両方を実現します。
Q:手ごろな価格で Apache Kafka on Heroku をテストするにはどうすればいいですか?
A:それが重要なニーズであることは認識していますが、本番環境におけるユースケースに対応できる専用クラスタの提供がこれまでの最優先課題となっていました。現在、非専用クラスタの提供に向け、チームの総力を挙げて取り組んでおり、これが完成すれば、テストや開発初期のニーズにも柔軟に対応することが可能になると思われます。
Q:2 つのデータセンター、たとえば、ヨーロッパとアジアで Kafka クラスタを維持するには、どうすればいいですか?
A:答えはユースケースによって異なります。最も簡単な方法は、両方のクラスタにメッセージを書き込むことです。また、Heroku dyno でセカンダリクラスタをターゲットに設定して MirrorMaker を実行することもできます。これにより、プライマリクラスタからセカンダリクラスタへ自動的にデータが同期されます。