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

推薦する

justhost クラウド VPS の簡単な紹介

justhost は、皆さんご存知のとおり、2008 年に設立され、ホスティング業界で急速に発展して...

Sina Weibo の曖昧なマーケティングイベントからレバレッジマーケティングを覗いてみよう

いわゆる状況を利用したマーケティングとは、マーケティング活動において販売の目的を隠し、消費者が好む環...

Jingan「高速クラウドサーバー」レビュー、高性能/BGPネットワーク/クラウド

先月、私はJingan Kuaiyun VPSに注目し、Kuaiyun VPSのレビューを書きました...

SEO初心者がBaiduキーワードで1位を獲得する方法のまとめ

3か月前、私は杭州の賃貸住宅に湖南SEO-株洲SEOブログを立ち上げました。当時私が設定したSEO目...

クラウドネイティブアーキテクチャにおけるログ監視のベストプラクティス

クラウド ネイティブ アーキテクチャのログ監視には、従来のアプリケーションとは少し異なるアプローチが...

私たちがこの数年間に経験したマーケティング

「マーケティング」という言葉に馴染みのない人も多いかもしれませんが、ほとんどの人が経験したことがある...

低価格プロモーションは、あなたや私の業界に活力をもたらすことができますか?

昨日、友達と車に乗っていたとき、彼は新しい携帯を買いたいが、8.5~8.7まで待たなければならないと...

ウェブゲームの収益分配モデルの解体:ユーザーは100元を支払い、開発者は30%から40%を受け取る

ウェブゲームの収益分配モデルの解体「ユーザーは100元を支払い、開発者は30%から40%を受け取りま...

皆さんのために用意したBaiduアルゴリズムの仕組み

Baidu が更新されるたびに、誰もがため息をつくでしょう。「ねえ、なぜ私のランキングはまた下がった...

ネットワーク + ストレージ + 仮想化: 新しいネットワークを構築するための 3 つの要素

現代のデータセンターのあらゆる部分は重要ですが、ネットワークはすべての通信の絶対的な基盤です。そのた...

新しいウェブサイトを構築する初心者向けのFAQ

1. 新しいサイトのランキングは非常に良いのに、数日後に消えてしまうのはなぜですか?分析:検索エンジ...

HiChinaのAlibaba Cloudへの合併の解釈:従来のホスティングが置き換えられる

テンセントテクノロジーの王克新が1月7日に報じた。アリババグループは昨日、傘下のアリババクラウドとH...

#おすすめ# bacloud: 12% オフの VPS 割引コード、高性能、100Mbps/1Gbps 無制限トラフィック

bacloud は現在、すべての VPS が 12% オフとなるハロウィーン プロモーションを実施し...