Apache Kafka API を使用して Pub/Sub Lite でメッセージをパブリッシュおよび受信する
このページでは、Pub/Sub Lite Kafka Shim を使用して Pub/Sub Lite でメッセージをパブリッシュする方法と受信する方法について説明します。
Pub/Sub Lite Kafka Shim は、Apache Kafka Java クライアント ライブラリのユーザーが行う Pub/Sub Lite での作業をより容易にしてくれる Java ライブラリです。これには、Producer API と Consumer API を実装する必要があります。
Apache Kafka トピックなどの Pub/Sub Lite トピックは、数値オフセットを使用してコンシューマーの進行状況を追跡するパーティション分割ログであるために可能です。
2 つのシステムは類似していますが、実際にはいくつかの重要な相違点があります。
- Pub/Sub Lite トピックは Kafka トピックと同等です。ただし、Lite トピックでは各トピック パーティションでスループットとストレージ容量が構成可能ですが、Kafka トピックの容量は Kafka クラスタ構成によって決定されます。
- Pub/Sub Lite のサブスクリプションは、Kafka コンシューマー グループと同等です。Lite サブスクリプションは、サブスクライバーが読み取ることができる Lite トピック パーティションからのメッセージを表す、Google Cloud Platform 指定の 1 次リソースです。同様に、Kafka コンシューマー グループは、Kafka トピックのパーティションからデータを読み取るコンシューマーで構成されます。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_ID
は、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_ID
は、実際の Google Cloud プロジェクト名に置き換えます。
-
-
Pub/Sub Lite API を有効にします。
gcloud services enable pubsublite.googleapis.com
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
-
Google アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/pubsublite.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。EMAIL_ADDRESS
は実際のメールアドレスに置き換えます。ROLE
は、個々のロールに置き換えます。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_ID
は、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_ID
は、実際の Google Cloud プロジェクト名に置き換えます。
-
-
Pub/Sub Lite API を有効にします。
gcloud services enable pubsublite.googleapis.com
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
-
Google アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/pubsublite.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。EMAIL_ADDRESS
は実際のメールアドレスに置き換えます。ROLE
は、個々のロールに置き換えます。
クライアント ライブラリをインストールする
次のサンプルは、pubsublite-kafka
クライアント ライブラリのインストール方法を示しています。
Java
Maven を BOM なしで使用している場合は、以下を依存関係に追加します。
Gradle を使用している場合は、以下を依存関係に追加します。
sbt を使用している場合は、以下を依存関係に追加します。
Visual Studio Code、IntelliJ または Eclipse を使用している場合は、次の IDE プラグインでプロジェクトにクライアント ライブラリを追加できます。
プラグインでは、サービス アカウントのキー管理などの追加機能も提供されます。詳細は各プラグインのドキュメントをご覧ください。
Lite トピックと Lite サブスクリプションを作成する
次のコマンドを使用して、Lite トピックと Lite サブスクリプションを作成します。
gcloud pubsub lite-topics create LITE_TOPIC_NAME \
--location=LITE_LOCATION \
--partitions=1 \
--per-partition-bytes=30GiB
gcloud pubsub lite-subscriptions create LITE_SUBSCRIPTION_NAME \
--location=LITE_LOCATION \
--topic=LITE_TOPIC_NAME \
--starting-offset=end \
--delivery-requirement=deliver-after-stored
以下を置き換えます。
LITE_TOPIC_NAME
: 新しい Lite トピックの名前。LITE_SUBSCRIPTION_NAME
: 新しい Lite サブスクリプションの名前。LITE_LOCATION
: Lite トピックと Lite サブスクリプションを作成するロケーション。サポートされている Pub/Sub Lite ロケーションを選択します。また、リージョンのゾーンも指定します。例:us-central1-a
。
Pub/Sub Lite にメッセージをパブリッシュする
Lite トピックにデータを送信するための Pub/Sub Lite プロデューサーを作成します。このクラスは、KafkaProducer
と同じインターフェースである org.apache.kafka.clients.Producer
を実装します。
Pub/Sub Lite からのメッセージの受信
Lite サブスクリプションからデータを受け取るための Pub/Sub Lite コンシューマを作成します。このクラスは、KafkaConsumer
と同じインターフェースである org.apache.kafka.clients.consumer.Consumer
を実装します。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースと一緒に Cloud プロジェクトを削除します。
Lite トピックとサブスクリプションを削除します。
gcloud pubsub lite-topics delete LITE_TOPIC_NAME
gcloud pubsub lite-subscriptions delete LITE_SUBSCRIPTION_NAME
- サービス アカウントを削除します。
gcloud iam service-accounts delete SERVICE_ACCOUNT_EMAIL
-
作成した認証情報を取り消して、ローカル認証情報ファイルを削除します。
gcloud auth application-default revoke
-
(省略可)gcloud CLI から認証情報を取り消します。
gcloud auth revoke
次のステップ
- Lite トピックと Lite サブスクリプションの詳細を確認する。
- メッセージの送信と受信の詳細を確認する。
- Pub/Sub Lite リソースのモニタリング方法を確認する。