KafkaとPubNubの接続

PubNub Developer Relations - Mar 5 - - Dev Community

Kafkaは、イベント駆動型アーキテクチャ(EDA)開発におけるデファクト・イベント・ブローカーになりつつある。EDAは、ソフトウェア開発を加速し、リアルタイムの機能や洞察を生み出し、モノリシックなシステムを切り離すのに役立っている。

しかしKakfaは、スマートフォン、ブラウザ、IoTデバイス、ラップトップなどのエッジデバイスと直接接続するようには設計されていない。PubNubは、Kafkaが到達できないエッジデバイス上で動作するリアルタイムアプリを構築・管理するための完全なプラットフォームです。幸いなことに、当社のお客様は、(イベントがすでにKafkaを通じてストリーミングされている)システムから直接来るデータでリアルタイムアプリを駆動し、PubNubを使用してエッジデバイスに接続するという、両方の世界のベストを手に入れることができます。

また、私たちの顧客の多くは、エッジデバイスからKafkaにイベントをストリーミングし、これらのイベントがKafkaに送信される前に「エッジ」(つまりPubNubのネットワーク内)で必要なフィルタリング、アグリゲーション、およびその他の前処理をオプションで行います。

PubNub Kafkaブリッジとは何ですか?

PubNub Kafkaブリッジを使用すると、新しいSink Connectorと Kafka Actionをそれぞれ使用して、KafkaデプロイメントでイベントをPubNubにシームレスにブリッジしたり、PubNubからイベントをブリッジしたりすることができます。Kafkaブリッジはオンプレミス、AmazonのManaged Kafkaサービス(MSK)、またはConfluentクラウド上でのデプロイをサポートしています。

既製の Kafka Sink Connector はお客様の Kafka デプロイメントと直接統合し、Kafka*からウェブブラウザ、モバイルアプリ、IoT センサーなどのエッジデバイスへの*リアルタイムイベント配信を可能にします。

完全に管理されたKafka Actionは、当社のEvents & Actionsサービス内でアクセス可能で、エッジデバイスから Kafkaへのイベントストリーミングを容易にし、「エッジ」で必要なフィルタリング、アグリゲーション、その他の前処理機能をオプションで提供します。

PubNub Kafkaブリッジの設定方法だけ知りたい場合は、この記事の最後まで読み飛ばすか、専用の Kafkaドキュメント.

なぜイベント駆動型アーキテクチャ(EDA)にPubNub + Kafkaを使うのか?

簡単に言うと、Kafkaはデータセンター内のイベントドリブンアーキテクチャを強化するための最も一般的なソリューションです。PubNubはKafkaを置き換えるものではなく、Kafkaをデータセンターの外からエンドユーザーデバイスや他のデータセンターに拡張するものです。

しかし、実際にはどうなのだろうか?

成功している大企業はすべて、システムの管理とスケーラビリティを改善し、顧客により迅速なエクスペリエンスを提供するために、イベント駆動型アーキテクチャへの移行を行っている。 EDAは、バックエンド・サービスやエンドユーザー・デバイス間の通信にイベントを使用する。イベントとは、eコマース・ウェブサイトからの新規注文や、現場作業員からのステータス更新のような、システム状態の変化と考えてください。 これらのイベントはイベント・バスに公開され、イベントを受信するようサブスクライブしているすべての人にルーティングされます。

イベント、イベント・バス、サブスクライバは一般的な用語であり、機能的に類似した概念を表すために異なる用語が使用されることがあります。例えば、"イベント・バス "は、ソースや業界によって、"メッセージ・バス"、"イベント・ブローカー"、または "Pub/Subシステム "として知られています。

なぜKafkaなのか?

Kafkaは信頼性の高いオープンソースのEDAソリューションで、フォーチュン100社の80%が利用しています。

では、なぜKafkaでPubNubを使うのでしょうか?

Kafkaは顧客のデータセンター内で使用され、デプロイされますが、PubNubはEDAのイベントドリブンの概念をデータセンターの外、Webブラウザ、モバイルアプリ、IoTデバイスを含むネットワークエッジまで拡張します。 KafkaとPubNubはどちらもスケールを念頭に設計されているため、組み合わせて使用すると、ファイアウォールの外にある何百万ものエンドユーザーデバイスと、安全なネットワーク内の何百ものバックエンドサーバーを接続することができます。

さらに、PubNubのような単一のサービスを使用してエッジデバイスと通信すると、イベントを送受信する必要があるすべてのサービス/デバイスのベンダーチェックを行う必要がなくなるため、認証プロセスを簡素化できます。

PubNubを「グローバル・イベント・バス」またはメッセージ・バスと考えれば、Kafka EDAの展開を中央集中型のデータセンターから広範なエッジ・デバイスまで拡大することができます。 PubNubは、リアルタイム・イベント・ストリーミングのためのPub/Subメッセージング強化されたセキュリティ、過去のメッセージを取得するための永続性オンザフライのイベント処理など、すべてのイベント・バス機能をすでにサポートしています。

  • ネットワークエッジで見たいKafkaイベントを生成していますか? PubNubでそれを実現できます。

  • ネットワークエッジでデータを収集していますか? 例えば、モバイルやWebアプリケーションとやりとりするユーザーなど? PubNubを使用して、これらのイベントをKafkaインスタンスに送信できます。

PubNub + Kafka:EDAの使用例:

PubNubとKafkaの組み合わせで実現できるユースケースを見てみましょう:

  • すでにシステム内で生成しているKafkaイベントを、ブラウザで実行するJavaScriptアプリを含むアプリケーションに直接リアルタイムでストリーミングできます。 Kafkaイベントを公開する前にフィルタリングして処理し、重要かつ関連性の高いイベントのみを確実に送信できます。

  • Kafkaイベントを安全な方法でネットワークエッジまで拡張し、お客様の環境内で特別なカスタムゲートウェイを実行する必要はありません。

  • 異種システムを簡単に接続: PubNubには50を超えるSDKがあり、以下のような特徴を持つゼロから構築されています。 セキュリティを念頭に置いて構築されているため、相互運用性が問題になることはありません。

  • リアルタイムのイベント(大規模なチャットルーム、デバイスの位置情報、センサーの読み取り値など)を互いに直接ストリーミングするアプリを構築しながら、すべてのイベントが分析、アーカイブなどのためにKafkaブローカーに同時にストリーミングされるようにします。

  • 複雑なVPC環境をセットアップすることなく、複数のデータセンターやハイブリッドデータセンターをブリッジします。

  • PubNubベースのセキュアなストリーミングAPIを公開し、イベントストリームのフィルタリング、設定、無効化を簡単に行うことができるゼロトラスト・セキュリティ・モデルを使用して、データストリームをビジネスパートナーにシンジケートします。

PubNub Kafkaブリッジの設定

Kafka Bridgeは、Kafka/PubNubのすべての統合のためのPubNubの包括的な用語であり、2つの別々のソリューションで構成されています。

  1. PubNub Kafka Sink Connector」はKafkaイベントを PubNubに 送信 するために使用します。 PubNubがKafkaイベントを受信できるようにするカスタムKafka Sink Connectorを提供します。

  2. 弊社のEvents & Actions製品の一部である「PubNub Kafka Action」を使用すると、PubNubイベントを Kafkaに送信できます。

ここで説明する設定手順の前提として、PubNubにサインアップし、APIキー(publish_keyとsubscribe_key)を取得する必要があります。

PubNub Kafka Sink Connectorの設定

PubNub Kafka Sinkコネクタのインストール、設定、テストの方法をよりよく理解するには、このコネクタの開発者が書いた以前のブログ記事「Installing the PubNub Kafka Sink Connector」を 強くお勧めします。

また、PubNub Kafka Sink Connectorのdocsページで追加のドキュメントを見つけることができます。

要約すると:PubNub KafkaシンクコネクタはGithubのhttps://github.com/pubnub/pubnub-kafka-sink-connector

コネクタがどのように動作するかをテストしたい場合は、リポジトリ内でDockerイメージが提供されており、Kafkaインスタンスをスピンアップし、依存関係をインストールし、タイムスタンプパラメータで構成されるテストイベントを発行します。 POSTコールを使用してコネクタを有効にした後、Kafkaテストイベントに一致する低レイテンシでPubNubイベントが受信されていることがわかります。

本番環境でシンクコネクタを使用するには、Mavenコマンドを使用してソースから.jarファイルをビルドし、それを適切なディレクトリにコピーして(Kafka Connectのセットアップに応じて)コネクタを適宜設定します。

完全なコネクタ構成については、ドキュメントページを参照してください:

  • PubNubに送信したいKafkaトピックまたはトピック

  • KafkaがPubNubにパブリッシュするときに使用するPubNubキーとID

  • シリアライズとエラー処理の追加オプション。

PubNub Kafkaアクションの設定

Events & Actionsは、保存、処理、分析のためにサードパーティのシステムにリアルタイムデータを送信できるPubNubサービスです。 Events & Actionsは、例えば、メッセージが特定のPubNubチャネルにパブリッシュされた、または特定のIDを持つユーザーがメッセージをパブリッシュしたなど、PubNubイベントを指定できるようにすることで機能します。例えば、Webhookをトリガーしたい、Amazon Kinesisにデータを送信したい、Apache Kafkaにデータを送信したいなどです。

ドキュメントを簡単に参照すると、手順は以下のようになる:

  1. Kafkaに送信したいデータを表すPubNubイベントを定義する。 これは、特定のパターンに一致するイベントをフィルタリングするためのステップでもある。

  2. Kafkaエンドポイントの詳細を使用してKafkaアクションを設定します。 これは、セルフホスト、Amazon MSKクラスタ、またはConfluent Cloudである可能性があります。

PubNub Kafkaアクションの設定例

PubNubの管理ポータルから'Events & Actions'を選択すると、イベントリスナーとアクションの両方を指定できます。

Creating a Kafka Action

イベントリスナーを追加'を選択し、イベントソースを選択します。

Creating a Kafka Action

ここでは、"send-to-kafka "という名前のチャネルで受信したすべてのメッセージをエクスポートしたいとします:

Creating a Kafka Action

次に、Apache Kafkaアクションを作成する。

Creating a Kafka Action

アクション設定の各フィールドが何を意味するかは、Kafkaアクションのドキュメントに詳しく記載されているが、以下のスクリーンショットは以下の設定にマッチする:

  • Kafka トピック: topic_0

  • Kafkaトピックキー:stamford

  • 認証:認証:SCRAM-SHA-256

  • イベントを受信するKafkaクラスターのURL:574mf0rd-bridge.ldn-west:1905

  • 失敗した試行は2回再試行され、間隔は450秒前後の計算式で算出される

Creating a Kafka Action

まとめ

すでに組織でKafkaを使用している場合、PubNubを使用してネットワークエッジのデバイスのリアルタイム機能を強化できます。 これは、Kafkaイベントバスで発生したイベントを、JavaScriptを使用するWebブラウザやiOSまたはAndroidを実行するモバイルデバイスなどのプラットフォームに関係なくクライアントに配信できることを意味します。 また、複雑なセットアップ、スケーラビリティ、データセキュリティの懸念なしに、PubNubネットワーク経由でクライアントデバイスからKafkaにリアルタイムでデータを取り込むことができます。

詳細については、Kafka Bridge開発者専用ページまたはKafka統合ドキュメントをご覧ください。セットアップに関するご質問は、サポートチームまたは開発者リレーションズチームまで電子メール(devrel@pubnub.com)でお問い合わせください。

目次

PubNubKafkaブリッジとは何ですか?なぜイベント駆動型アーキテクチャ(EDA)にPubNub + Kafkaを使用するのですか?EDAの使用例:PubNub Kafkaブリッジの設定PubNub Kafkaシンクコネクタの設定PubNub Kafkaアクションの設定PubNub Kafkaアクションの設定まとめ

PubNubはどのようにあなたを助けることができますか?

この記事はPubNub.comに掲載されたものです。

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

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

PubNubを体験

ライブツアーをチェックして、5分以内にすべてのPubNub搭載アプリの背後にある本質的な概念を理解する

セットアップ

PubNubアカウントにサインアップすると、PubNubキーに無料ですぐにアクセスできます。

始める

PubNubのドキュメントは、ユースケースやSDKに関係なく、あなたを立ち上げ、実行することができます。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .