第1章 AMQ Streams の概要
Red Hat AMQ Streams は、Apache ZooKeeper プロジェクトおよび Apache Kafka プロジェクトをベースとする非常にスケーラブルで分散され、高パフォーマンスのデータストリーミングプラットフォームです。
主なコンポーネントは、以下のとおりです。
- Kafka Broker
クライアントを消費するためのクライアントの生成からレコードを配信するメッセージングブローカー。
Apache ZooKeeper は Kafka のコア依存関係であり、信頼性の高い分散コーディネーションを実現するためにクラスター調整サービスを提供します。
- Kafka Streams API
- ストリームプロセッサーアプリケーションを 記述する API。
- プロデューサーおよびコンシューマー API
- Kafka ブローカーとの間でメッセージを生成および消費するための Java ベースの API。
- Kafka Bridge
- AMQ Streams Kafka Bridge では、HTTP ベースのクライアントと Kafka クラスターとの対話を可能にする RESTful インターフェースが提供されます。
- Kafka Connect
- Connector プラグインを使用して Kafka ブローカーと他のシステム間でデータをストリーミングするツールキット。
- Kafka MirrorMaker
- データセンター内またはデータセンター全体の 2 つの Kafka クラスター間でデータを複製します。
- Kafka Exporter
- 監視用に Kafka メトリクスデータの抽出に使用されるエクスポーター。
- Kafka Cruise Control
- 最適化ゴールと容量制限を基にして、Kafka クラスターをリバランスします。
Kafka ブローカーのクラスターは、これらのコンポーネントをすべて接続するハブです。ブローカーは、設定データを保存およびクラスターの調整に Apache ZooKeeper を使用します。Apache Kafka の実行前に、Apache ZooKeeper クラスターを用意する必要があります。
図1.1 AMQ Streams アーキテクチャー
1.1. Kafka の機能
Kafka の基盤のデータストリーム処理機能とコンポーネントアーキテクチャーによって以下が提供されます。
- スループットが非常に高く、レイテンシーが低い状態でデータを共有するマイクロサービスおよびその他のアプリケーション。
- メッセージの順序の保証。
- アプリケーションの状態を再構築するためにデータストレージからメッセージを巻き戻し/再生。
- キーバリューログの使用時に古いレコードを削除するメッセージ圧縮。
- クラスター設定での水平スケーラビリティー。
- 耐障害性を制御するデータのレプリケーション。
- 即座にアクセスするために大容量のデータを保持。