Kafka Connect は RDS バイナリログデータをどのように同期しますか?

Kafka Connect は RDS バイナリログデータをどのように同期しますか?

1. 背景

私たちの事業開発では、次のようなシナリオによく遭遇します。

  • ビジネス更新データがデータベースに書き込まれる
  • ビジネス更新データは、下流の依存処理にリアルタイムで渡す必要がある

したがって、従来の処理アーキテクチャは次のようになります。

しかし、このアーキテクチャには多くの欠点もあります。プロジェクト内で大量のメッセージ送信コードを保守する必要があるのです。メッセージを追加または更新すると、多大なメンテナンスコストがかかります。したがって、これを処理するより良い方法は、次に示すように、データベース データをストリーミング システムに直接接続することです。

この記事では、E-MapReduce 上で RDS バイナリログを Kafka クラスターにリアルタイムで同期する方法を説明します。

2. 環境整備

実験ではVPCネットワーク環境を使用します。 VPC 環境ではデフォルトで以下のインスタンスが作成されます。

2.1 テストRDSデータベースを準備する

RDS インスタンスを作成し、バージョン 5.7 を選択します。ここでは、RDS の作成方法については詳しく説明しません。詳細な手順については、RDS のドキュメントを参照してください。作成後は、図のようになります。

2.2 Kafka クラスターの準備

E-MapReduce Kafka クラスターを作成し、バージョンとして EMR-3.11.0 を選択します。ここでは EMR-3.11.0 以降のバージョンを選択する必要があることに注意してください。そうしないと、Kafka Connect サービスはデフォルトでインストールおよび起動されません。詳細な作成プロセスについては、E-MapReduce のドキュメントを参照してください。作成後は、図のようになります。

注意: RDS インスタンスと E-MapReduce Kafka クラスターは同じ VPC 内に存在する必要があります。それ以外の場合は、2 つの VPC 間のネットワークを開く必要があります。

3. カフカコネクト

3.1 コネクタ

Kafka Connect は、Kafka と他のデータ システム間のデータ転送用のツールです。 Kafka ベースのデータ パイプラインを実装し、上流と下流のデータ ソースを接続できます。必要なのは、データ ソースからのデータの読み取り/データ ソースへのデータの書き込み方法を具体的に実装するコネクタを Kafka Connect サービスで実行することだけです。 Confluent は多くのコネクタ実装を提供しており、ここからダウンロードできます。しかし、今日は Debezium が提供する MySQL Connector プラグイン (ダウンロード アドレス) を使用します。

このプラグインをダウンロードし、解凍したすべての jar パッケージを kafka lib ディレクトリにコピーします。注: これらの jar パッケージは、Kafka クラスター内のすべてのマシンにコピーする必要があります。

Kafka クラスターのサービス リストで Kafka Connect コンポーネントを再起動します。

3.2 コネクタを起動する

コネクタを作成する前に、いくつかの設定を行う必要があります。 Debezium MySQL Connector の主な構成項目の一部を次に示します。

Kafka クラスターにログインし、次のコマンドを使用してコネクタを設定および作成します。

この時点で、図に示すように、作成されたコネクタを確認できます。

3.3 注記

server_idとは何ですか? 「SELECT @@server_id;」を実行すると見つかります。 RDS で。

コネクタの作成時に接続エラーが発生する可能性があります。 RDS ホワイトリストに Kafka クラスター マシンへのアクセスが許可されていることを確認してください。

4 テスト

4.1 テーブルを作成する

しばらくすると、対応するトピックがKafkaクラスターに自動的に作成されます。

データを挿入する

バイナリログデータを表示する

トピックfulfillment.mugen.studentsをチェックして、新しく挿入されたデータがあるかどうかを確認します。

結果は図の通りです。

5. 情報

  • Confluent 公式ドキュメント https://docs.confluent.io
  • Debezium 公式サイト http://debezium.io/
  • Kafka 公式ドキュメント http://kafka.apache.org/documentation.html

<<:  企業の最高情報セキュリティ責任者がクラウドコンピューティングのセキュリティに取り組むべきこと

>>:  SonicWall が Capture Cloud Platform を発表、幅広いネットワーク セキュリティ ポートフォリオに仮想機能とエンドポイント セキュリティを導入

推薦する

cloud.net - 5ドル/512Mメモリ/標準ONAPPクラウド/世界中に12のデータセンター

cloud.net は、ONAPP クラウド アーキテクチャに基づくまったく新しいクラウド ホスティ...

ウクライナ VPS: ukrdc、KVM 仮想化、無制限のトラフィック、苦情防止

ukrdc は 2009 年に設立されたウクライナのホスティング会社です。主な事業は VPS です。...

広州商標登録ネットワークがK-outされた悲しい歴史。ウェブサイト所有者は注意してください

筆者は比較的幅広い業務範囲を持つマーケティング企画会社に勤務しているが、商標登録は間違いなく同社が最...

クラウド変更管理: 企業にとっての変更を効果的に行う方法

クラウド環境での変更管理は、企業が急速に変化する環境に対応し、成功の可能性を高める道筋を作成するのに...

ソフトコンテンツマーケティングはウェブサイトの成功のための強力なツールです

ソフト記事マーケティングは、現在SEOにとって最も重要なツールとなっています。現在、多くの主流ウェブ...

草の根の金儲けの考え方について、少しお話ししましょう

たくさんの退屈な話を読んだ後、今日は「退屈な話」をいくつか皆さんと共有したいと思います。ネット上では...

IT インフラストラクチャを仮想化していますか? VMware vSphere の概要

[[281438]] X86 コンピュータ ハードウェアは、単一のオペレーティング システムと単一の...

Photonvps が全面的に 50% オフ。この機会をお見逃しなく

Photonvps は全品 50% オフ。この機会をお見逃しなく。クーポンコード: HALFOFF ...

SEO に関する 4 つのよくある誤解の分析 (パート 3)

最初の 2 つの章では、SEO に関する 4 つのよくある誤解を紹介しました。具体的なアドレスは、h...

アプリケーションの最新化を「より速く、より良く、より安く」実現するというのは誤った提案でしょうか?

この流行は今年特有の「事故」の一つとして考えるべきだろう。その突然の到来は、間違いなく、あらゆる企業...

k9s を使用して Kubernetes クラスターの管理を簡素化しましょう。

[51CTO.com クイック翻訳] 私が執筆する Kubernetes 管理記事では、通常、クラス...

unixhost: 高品質のウクライナの仮想ホスティングとKVMシリーズVPSを提供

unixhost は 2009 年に設立され、主に仮想ホスティング、VPS、専用サーバーの事業を運営...

王通:APPプロモーションの8つの方法

現在、モバイルアプリのアプリケーションの数は10年前のウェブサイトの数を超え、爆発的に増加し始めてい...

locvps: 22 元/月、US CN2 VPS、1G メモリ/1 コア/30g SSD/400g トラフィック/150M 帯域幅

locvpsは現在、米国ロサンゼルスデータセンターの「ロサンゼルス#2(BGP+CN2)」シリーズV...

AWSは機械学習の革新的な応用を全面的に推進

2020年7月9日午後に開催された世界人工知能会議2020クラウドサミットの産業開発サミットフォーラ...