TICDC->KAFKA-任意数据库开源同步方案

1:总架构
mysql-maxwell -kafka-confluent -其他任何db
tidb-ticdc-kafka-confluent-其他任何db

2:中间件安装即配置
 2.1 安装ticdc 请参考官方文档
 2.2 下载confluent软件
 下载confluent-7.4.0.tar.gz
  wget https://packages.confluent.io/archive/7.4/confluent-7.4.0.tar.gz
  tar -xvf confluent-7.4.0.tar.gz -C /usr/local
  mv confluent-7.4.0. confluent
 2.3 配置环境变量
  vim ~./bashrc
  export CONFLUENT_HOME/usr/local/confluent
  export PATH=$PATH:$CONFLUENT_HOME/bin
  source ~/.bashrc
 2.4 安装 Confluent 
  cd /usr/local/confluent/bin
     ./confluent-hub install --no-prompt confluentinc/kafka-connect-datagen:latest

 2.5 启动confluent
  停止 confluent local services stop
  启动 confluent local services start
查看状态
       confluent local services status
##如果有启动某些组件失败的时候,需要指定组件重新启动
  查看某系组件日志
    confluent local services schema-registry log -f
  查看某些启动组件
    confluent local services schema-registry start
  查看某个组件的状态
    confluent local services schema-registry status
 2.6 confluent 组件介绍
    connect 是本文后续使用的组件,他支持kafka 消费数据写入到下游组件,下游组件可以通过插件支持各种易购存储系统入oracle,mysql,sqlsercver ES等
    control center 是WEB空间页面 用户可以在页面上管理Kafka集群和数据,管理connect 任务和插件
Kafka 消费组件
   ksqlDB Server 可以将Kafka topic 映射为一张表 然后执行sql 做数据处理 
  Schema Registry 是 AVRO Schema 管理组件 kafka 中消息 schema变化时会网schema registry 发送变更消息数据同步组件发现schema 变化之后从 schema registry 获得最新schema 以便同步新schema
  zookeeper 愿数据管理工具 支持kafaka 选注等
3:配置ticdc 任务发生多张表到confluent 的kafka里 的topic
  3.1 在ticdc 中配置tidb_kafka.conf 文件
   cat tidb_kafka.conf
 #指定文件中设涉及的库,表名是否为大小写铭感
#该配置同时会影响 filter 和 sink 相关配置 默认为true
  case-sensitive =true
#是否输出old vlaue 从v4.0.5开始支持,从v5.0开始默认问true
#enable-old-value= true
#忽略 指定 start_ts的事物 #ignore-txn-start-ts= [1,2]
#过滤器规则
#过滤器规则语法 :https://docs.pingcap.com/zh/tidb/stable/table-filter #表过滤语法
[filter]
 rules = [
 'test1.tab1','test1.tab2','test2.mytab1']

 [sink]
dispatchers = [{matcher = ["test1.tab1","test1.tab2","test2.mytab1"],topic="{schema}-{table}",partition="table"},]
3.2 创建TICDC任务
 cdc cli changefeed create --server=http://127.0.0.1:8300 --sink-uri="kafka://127.0.0.1:9092/tidb-kafka?prtocol=avro&partition-num1&max-message-bytes=67108864&replication-factor=1" --changefeed-id=tidbkafka --config/home/tidb/fat_cdc/tidb_kafka.conf --schema-registry="http://127.0.0.1:8081"
特别说明:
 --sink-uri="kafka://127.0.0.1:9092" 设置为之前 confluent 启动的kafka 地址
 protocol=avro 使用avro 格式,avro 格式支持为schema演化,支持自动部分DDL同步,对其他格式有优势
--changefeed-id="tidb-kafka"表示此ticdc 同步任务id
--config="c.conf" 表示ticdc 任务使用3.1中创建的配置文件,实现多表多topic
--schema-registry=http://127.0.0.1:8081 配合avro 实现schema演化,档TIDB DDL 变更时候会发消息给schema-registry,以变消息组件更新schema
3.3验证服务
 cdc cli changefeed list --server=http://127.0.0.1:8300
{
  "id" : "tidb-kafka",
  "namespace" : "default",
  "summary" : {
   "state": "normal",
  "tso" : 442666666666666,
  "checkpoint": "2023-07-06 20:59:54.633",
  "error": null
   }
 }
}
#备注 如果发现有问题可以删除名利如下
cdc cli changefeed remove --server=http://127.0.0.1:8300 --changefeed-id kafka-bw-account

4 使用connect 完成TIDB 实时数据到MYSQL
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值