Member-only story
Kafkaを用いた非同期通信によるスケーラビリティの高いマイクロサービスアプリケーションのデモ
シリーズの内容
本連載では、異なる技術を使って同じScalable Microservice Applicationを作成しています。
1.(この記事)
2.AWS Lambda Kinesisを使ったスケーラブルなサーバレスマイクロサービスのデモ
3.KnativeとKafkaを使ったスケーラブルなサーバレスマイクロサービスのデモ(計画通り)
What’s this about?
Kubernetes、Istio、Kafkaを使ったHighly Scalable Microservice Demoアプリケーションについて説明します。同期的なREST APIコールを介してユーザーを作成することができます。内部では、すべての通信はKafkaを介して非同期で行われます。
Kafkaのコンシューマ/プロデューサーであるUserApprovalServiceは、Kafkaトピック内の未処理メッセージの数に基づいて自動的にスケーリング(HPA)されます。ノード/クラスタのスケーラーも用意されています。
1秒間に23000件のKafkaイベント、11台のKubernetesノード、280台のポッドにまでスケールアップする予定です。
このアプリケーションはTerraformの助けを借りて完全にスクリプト化されており、1つのコマンドで実行することができます。
技術スタック:
・ Terraform
・(Azure) K8s、MongoDB、コンテナレジストリ
・(ConfluentCloud) Kafka
・ Istio
・Grafana, Prometheus, Kafka Exporter, Kiali
・ Python, Go
リポジトリ