PubNub Kafkaシンクコネクタのインストール
Published: 2024-02-07 05:23:26

既存のKafkaクラスタをお持ちで、KafkaトピックからWebブラウザや携帯電話などのデバイスにリアルタイムでデータレコードを配信したい場合、PubNub Kafka Sink Connectorがソリューションとなります。このガイドでは、PubNub Kafka Sink Connectorのセットアップ手順を説明します。

ローカルテストKafkaクラスタのセットアップ（オプション）
------------------------------

PubNub Kafka Sink Connectorは、KafkaトピックからHadoop、Elastic、PubNubなどのセカンダリシステムにデータを配信するために特別に開発されたフレームワークであるKafka Connectを活用します。 デモのために、Kafkaクラスタ全体を1つのDockerコンポジスト・ファイルに含めました。これには、Dockerのセットアップに必要なもの、構成されたYAMLファイル、Kafkaブローカー、そしてクラスタ自体がすべて含まれています。さらに、ローカルで稼働しているKafkaクラスタのトピックにデータを自動的に生成する、テスト用のプロデューサーも含まれています。

リポジトリ[https://github.com/pubnub/pubnub-kafka-sink-connector](https://github.com/pubnub/pubnub-kafka-sink-connector)をクローンし、`docker compose up`コマンドを実行して、ローカルシステム上でこれらのイメージを起動します。Kafka自体には多くの機能があるため、しばらく時間がかかるかもしれません。

Docker ComposeはPubNub Kafka Sink Connectorパッケージもビルドします。簡単にするために、Mavenパッケージをビルドしてくれるイメージも用意しました。これにより、Kafka Connectフレームワークを使用してKafka Connectに素早く簡単にインポートできます。ビルダーイメージがコネクターパッケージのビルドを完了したら、デプロイの準備が整います。コンシューマー通知メッセージが一定間隔で表示され、次のように表示されれば準備が整ったことがわかります：`コンシューマー｜{"timestamp":1705690559}`一連のレコード。これはテストデータコンテナが正常に動作していることを表し、Sink Connectorをインストールする準備ができたことを意味する。

PubNub Sink Connectorのデプロイ
--------------------------

Sink Connectorは、Kafkaトピックとそのトピック内のレコードをデバイスに転送する間のKafka Connectフレームワーク上で動作するブリッジです。必要なのはコネクタのパッケージ情報だけで、これはPubNub Sink Connector JSONファイルにあります。このファイルをKafka Connectが実行されているKafka Connectにポストすると、設定されたトピックからエンドターゲットデバイスに直接データをコピーし始めます。

[JSONファイルexamples/pubnub-sink-connector.jsonに](https://github.com/pubnub/pubnub-kafka-sink-connector/blob/main/examples/pubnub-sink-connector.json) PubNub APIキー情報を設定する必要があります。APIキーは[https://admin.pubnub.com/](https://admin.pubnub.com/)。これが最終結果をターゲットデバイスに配信するために使用されます。トピックとパターンを設定し、Sink Connectorをデプロイするコマンドを実行します。

以下のコマンドを実行して、シンクコネクタをデプロイします：

```js
curl -X POST \
    -d @examples/pubnub-sink-connector.json \
    -H "Content-Type:application/json" \
    http://localhost:8083/connectors
```

これでコネクタが実行され、設定されたKafkaトピックに送信されたすべてのデータがPubNub SDKでサブスクライブされたデバイスに即座にコピーされます。

シンクコネクタの検証
----------

ウェブブラウザデバイスに配信されるメッセージを確認することで、コネクタが実行されていることを検証できます。メッセージがKafkaトピックに置かれるとすぐに、PubNubインフラストラクチャにコピーされ、PubNubインフラストラクチャはそれらのメッセージをエンドターゲットデバイスに確実に配信する責任を負います。次のスクリーンショットは、Kafkaトピックでイベントレコードを受信した瞬間に、Webブラウザアプリケーションにデータがストリーミングされる様子を示しています。

![Validation of data being received on a web browser app from event records originating in a Kafka topic.](https://pubnub.com/cdn/3prze68gbwl1/9SwRTW3wCqjRs65X5vwyL/745d0c0fe06f48a5bfb8f4f639713fc6/Screenshot_2024-01-19_at_1.00.04_PM.png)

PubNub Kafkaシンクコネクタの構築
----------------------

本番環境の準備ができたら、Mavenビルドコマンドを使用してPubNub Kafka Sink Connectをビルドできます。Java 11以上やMavenの新しいバージョンなど、すべての依存関係がインストールされていることを確認します。`mvn clean packageを`実行してパッケージに関連するすべてのテストを実行し、jarファイルとzipファイルを含むいくつかのパッケージをコンパイルします。これがKafka Connect Frameworkで使用するパッケージです。

PubNub Kafka Sink Connectorをインストールするためのビデオチュートリアル
-------------------------------------------------

ビデオでは、PubNub Kafka Sink Connectorのガイド付きインストールが実演されています。

[ビデオを見るにはここをクリック](https://videos.ctfassets.net/3prze68gbwl1/4S1JBjNrtGzLuUuJqmUc03/e2814500520648f92768d449a7c6c085/PubNub-Kafka-Connector.edited.mp4)

PubNub Kafka Sink Connectorのセットアップは簡単で、ステップに注意深く従うことが重要です。途中で問題が発生した場合は、[support.pubnub.comまで](https://support.pubnub.com)ご連絡ください。

詳細は[PubNubの公式ドキュメントを](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector)ご覧ください。

PubNubはどのようにお役に立ちますか？
=====================

この記事は[PubNub.comに](https://www.pubnub.com/blog/installing-pubnub-kafka-sink-connector/)掲載されたものです。

PubNubのプラットフォームは、開発者がWebアプリ、モバイルアプリ、IoTデバイス向けにリアルタイムのインタラクティブ機能を構築、提供、管理できるように支援します。

私たちのプラットフォームの基盤は、業界最大かつ最もスケーラブルなリアルタイムエッジメッセージングネットワークです。世界15か所以上で8億人の月間アクティブユーザーをサポートし、99.999%の信頼性を誇るため、停電や同時実行数の制限、トラフィックの急増による遅延の問題を心配する必要はありません。

PubNubを体験
---------

[ライブツアーを](https://www.pubnub.com/tour/introduction/)チェックして、5分以内にすべてのPubNub搭載アプリの背後にある本質的な概念を理解する

セットアップ
------

[PubNubアカウントに](https://admin.pubnub.com/signup/)サインアップすると、PubNubキーに無料ですぐにアクセスできます。

始める
---

[PubNubのドキュメントは](https://www.pubnub.com/docs)、ユースケースや[SDKに](https://www.pubnub.com/docs)関係なく、あなたを立ち上げ、実行することができます。