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 を発表、幅広いネットワーク セキュリティ ポートフォリオに仮想機能とエンドポイント セキュリティを導入

推薦する

WeChatエンタープライズアカウントはモバイルB2Bプラットフォームを構築します

最近、WeChat公式アカウントが公開テストを開始しました。「万能のWeChat」が企業向けソフトウ...

ウェブマスターのソフト記事のアイデアの源泉についての簡単な議論(連載第1回)

多くの初心者ウェブマスターは、ソフトな記事を書こうとペンを手に取ると、アイデアが尽きたと感じますか?...

年額支払い: 9.99 ドル/512M メモリ/SSD/Phoenix

Bandwagonhost は vpsblast の別名で、OpenVZ をベースにした低価格の S...

SEO トレンドに関する考察: 軽量 Web サイトがトレンドになりつつあるのでしょうか?

今年6月、蔡蔡はA5に「ウェブサイトのコンテンツは毎日更新する必要があるか?」と題する記事を掲載した...

hostbrew - $16.2/年/KVM/256MB メモリ/10GB ハードディスク/256GB トラフィック/ロサンゼルス/QN データセンター

hostbrew は 2009 年に登録された小さな会社で、独自の AS 番号 [AS394180]...

もし私があなたに1000万あげたら、それをどう使うか知っていますか?主流チャネルのプロモーションと配信の組み合わせ戦略

この記事は、インターネット金融の業界背景を踏まえ、数千万レベルのチャネル運営とプロモーションスキルに...

仕事の効率を2倍にする: Gitの実用的なコマンド集

1. バージョン管理を理解するバージョン管理とは何ですか?本当に必要ですか?バージョン管理は、特定の...

ブランドマーケティング: 一般的な消費者心理 15 項目とそれに対応するマーケティング戦略

消費者心理にはさまざまな種類があり、インターネット上の多くの記事でも関連する説明が提供されていますが...

11月の国内ネットユーザーの地域分布:広東省が13.13%で第1位、江蘇省と浙江省が続く

IDC Review Network(idcps.com)は12月12日に次のように報じた。百度統計...

一般ステーショングループからのトラフィックをTaobaoに利用するにはどうすればいいですか?

今日、友人から電話がありました。彼は一般ステーショングループトラフィックのビジネスに携わっていて、今...

arkecxクラウドサーバーはどうですか?トルコデータセンターのクラウドサーバーのレビュー

arkecx は中東のトルコにも独自のデータセンターを持ち、トルコのクラウド サーバー サービスをす...

我が国の政府クラウド開発の現状と動向の分析

[[417926]] 1. 中国の政府クラウド市場は成長を続けている現在、デジタル経済の急速な発展と...

Tech Neo 8月号: 言語の選択

51CTO.com+プラットフォームは、オリジナルの技術コンテンツの選択と絶妙なレイアウトを通じて、...

仮想マシンを Istio サービス メッシュに統合するにはどうすればよいですか?

[[350264]] [51CTO.com クイック翻訳] Istio は、サービスを接続、保護、制...

アップル、ユーザー情報の取得について「そんなものはない」と回答

AppleがiPhoneユーザーの個人情報を入手しているかどうかという質問に対して、Appleは本日...