Apache Kafka アプリケーションから Azure Event Hubs を使用するUse Azure Event Hubs from Apache Kafka applications

Event Hubs は、独自の Kafka クラスターを実行する代わりに、既存の Kafka ベースのアプリケーションが使用できる Kafka エンドポイントを提供します。Event Hubs provides a Kafka endpoint that can be used by your existing Kafka based applications as an alternative to running your own Kafka cluster. Event Hubs は、Apache Kafka 1.0 以降をサポートしており、MirrorMaker を含む既存の Kafka アプリケーションに対応します。Event Hubs supports Apache Kafka protocol 1.0 and later, and works with your existing Kafka applications, including MirrorMaker.

Kafka 用 Event Hubs で提供されるものWhat does Event Hubs for Kafka provide?

Kafka 機能用 Event Hubs は、Azure Event Hubs 上で、Kafka トピックに対する読み取りと書き込みの両方について、Kafka バージョン 1.0 以降とバイナリ互換性のあるプロトコル ヘッドを提供します。The Event Hubs for Kafka feature provides a protocol head on top of Azure Event Hubs that is binary compatible with Kafka versions 1.0 and later for both reading from and writing to Kafka topics. コードを変更する必要はなく、構成の最小限の変更だけで、アプリケーションから Kafka エンドポイントを使い始めることができます。You may start using the Kafka endpoint from your applications with no code change but a minimal configuration change. Kafka クラスターを指すのではなく、イベント ハブによって公開されている Kafka エンドポイントを指すように、構成の接続文字列を更新します。You update the connection string in configurations to point to the Kafka endpoint exposed by your event hub instead of pointing to your Kafka cluster. その後、Kafka プロトコルを使用するアプリケーションから Event Hubs へのイベントのストリーミングを開始できます。Then, you can start streaming events from your applications that use the Kafka protocol into Event Hubs. この統合により、現在プレビュー段階の Kafka 接続ようなフレームワークもサポートされます。This integration also supports frameworks like Kafka Connect, which is currently in preview.

Kafka と Event Hubs は、概念的にはほぼ同じものです。これらはどちらも、ストリーミング データ用に構築されたパーティション分割型のログです。Conceptually Kafka and Event Hubs are nearly identical: they are both partitioned logs built for streaming data. 次の表に、Kafka の概念と Event Hubs の概念のマッピングを示します。The following table maps concepts between Kafka and Event Hubs.

Kafka と Event Hubs の概念のマッピングKafka and Event Hub conceptual mapping

Kafka での概念Kafka Concept Event Hubs での概念Event Hubs Concept
クラスターCluster 名前空間Namespace
トピックTopic イベント ハブEvent Hub
PartitionPartition PartitionPartition
コンシューマー グループConsumer Group コンシューマー グループConsumer Group
OffsetOffset OffsetOffset

Kafka と Event Hubs の主な違いKey differences between Kafka and Event Hubs

Apache Kafka は、選択した任意の場所で実行できるソフトウェアであるのに対して、Event Hubs は、Azure Blob Storage に似たクラウド サービスです。While Apache Kafka is software, which you can run wherever you choose, Event Hubs is a cloud service similar to Azure Blob Storage. 管理するサーバーやネットワークはなく、構成するブローカーがありません。There are no servers or networks to manage and no brokers to configure. ユーザーは名前空間を作成します。それが、トピックが存在する FQDN であり、次に、その名前空間内に Event Hubs またはトピックを作成します。You create a namespace, which is an FQDN in which your topics live, and then create Event Hubs or topics within that namespace. Event Hubs と名前空間について詳しくは、「Event Hubs の機能」をご覧ください。For more information about Event Hubs and namespaces, see Event Hubs features. クラウド サービスとしての Event Hubs は、単一の安定した仮想 IP アドレスをエンドポイントとして使用するため、クライアントは、ブローカーやクラスター内のマシンについて知っておく必要はありません。As a cloud service, Event Hubs uses a single stable virtual IP address as the endpoint, so clients do not need to know about the brokers or machines within a cluster.

Event Hubs のスケールは、購入するスループット単位の数によって制御されます。各スループット単位では、1 秒あたり 1 MB、または受信の 1 秒あたり 1,000 イベントを利用できます。Scale in Event Hubs is controlled by how many throughput units you purchase, with each throughput unit entitling you to 1 MB per second, or 1000 events per second of ingress. 既定では、Event Hubs は上限に達すると自動インフレ機能によってスループット ユニットをスケールアップします。この機能は Kafka 機能用 Event Hubs でも働きます。By default, Event Hubs scales up throughput units when you reach your limit with the Auto-Inflate feature; this feature also works with the Event Hubs for Kafka feature.

セキュリティと認証Security and authentication

Azure Event Hubs は、すべての通信に対して SSL または TLS を要求し、認証のために Shared Access Signatures (SAS) を使用します。Azure Event Hubs requires SSL or TLS for all communication and uses Shared Access Signatures (SAS) for authentication. この要件は、Event Hubs 内の Kafka エンドポイントにも適用されます。This requirement is also true for a Kafka endpoint within Event Hubs. Kafka との互換性のため、Event Hubs は認証用には SASL PLAIN を、トランスポート セキュリティのためには SASL SSL を使用します。For compatibility with Kafka, Event Hubs uses SASL PLAIN for authentication and SASL SSL for transport security. Event Hubs でのセキュリティに関する詳細については、「Event Hubs の認証とセキュリティ」をご覧ください。For more information about security in Event Hubs, see Event Hubs authentication and security.

Kafka で使用できるその他の Event Hubs 機能Other Event Hubs features available for Kafka

Kafka 機能用 Event Hubs では、あるプロトコルで書き込みを、別のプロトコルで読み取りを行えます。そのため、現在の Kafka プロデューサーは Kafka による発行を続けることができます。また、Event Hub で Azure Stream Analytics や Azure Functions などのリーダーを追加できます。The Event Hubs for Kafka feature enables you to write with one protocol and read with another, so that your current Kafka producers can continue publishing via Kafka, and you can add readers with Event Hubs, such as Azure Stream Analytics or Azure Functions. さらに、CaptureGeo ディザスター リカバリーなどの Event Hubs 機能も、Kafka 機能用 Event Hubs で動作します。Additionally, Event Hubs features such as Capture and Geo Disaster-Recovery also work with the Event Hubs for Kafka feature.

まだサポートされていない機能Features that are not yet supported

まだサポートされていない Kafka の機能の一覧を次に示します。Here is the list of Kafka features that are not yet supported:

  • べき等プロデューサーIdempotent producer
  • トランザクションTransaction
  • 圧縮Compression
  • サイズ ベースのリテンション期間Size-based retention
  • ログの圧縮Log compaction
  • 既存トピックへのパーティションの追加Adding partitions to an existing topic
  • HTTP Kafka API のサポートHTTP Kafka API support
  • Kafka StreamsKafka Streams

次の手順Next steps

この記事では、Kafka 用 Event Hubs の概要について説明しました。This article provided an introduction to Event Hubs for Kafka. 詳細については、以下のリンクをご覧ください。To learn more, see the following links: