Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Debeziumで変更データキャプチャを学ぼう #jjug_ccc

yy_yank
November 21, 2021

Debeziumで変更データキャプチャを学ぼう #jjug_ccc

JJUG CCC 2021 Fallの 「15:00 ~ 15:50 Debeziumで変更データキャプチャを学ぼう」の資料です

yy_yank

November 21, 2021
Tweet

More Decks by yy_yank

Other Decks in Programming

Transcript

  1. • CDC(Change Data Caputure)変更データキャプチャ • Consumer Driven Contractではない • Debeziumの場合、データベースのトランザクションログ

    を読み込むことで変更を検知し、イベントを発火する(大 体の変更データキャプチャはその形式な気がします) 変更データキャプチャとは 1. 変更データキャプチャについて
  2. • DebeziumはKafka Connectプラグイン(といっても過言ではない気がする) • Kafka ConnectのソースコネクタがDBのトランザクションログを読む • Kafka Connectに登録されたDebeziumのソースコネクタがKafkaにメッセージ をpublishする

    • あとはKafkaのイベントを好きにsubscribeすれば良い (Kafka Connectのシンクコネクタでも良いし、Kafkaのコンシューマーでよしなに subscribeしても良い) Debeziumの仕組み 2. Debeziumとは
  3. • Spring Boot • Spring Kafka • Spring JDBC •

    Kotlin サンプルリポジトリの技術要素 3. ケーススタディ
  4. Dockerで動かしているもの • Kafka • Kafka Connect • Zookeeper • MySQL(モノリスDB)

    • MySQL(アルバムAPI用DB) サンプルリポジトリの技術要素 3. ケーススタディ
  5. • Kafkaのトピックはデータベースのテーブル毎に作成される • Kafka ConnectにDebeziumコネクタ登録するときの設定が間違っ ているとデータベースのテーブル毎にKafkaのトピックは作成されな い • MySQLがbinlog =

    rowで行レベルでのbinlogを出力していないと、 変更が検知できなくてDebeziumコネクタがKafkaのイベントを publish出来ない DEMOで伝えたハマりどころ 3. ケーススタディ