迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:drc开源软件地址:https://gitee.com/vipshop/drc开源软件介绍:关于DRCDRC(Data Replication Center)是唯品会自研的MySQL双向复制方案,主要应用场景是数据库双向复制、单向复制。 目前DRC在唯品会还未正式使用,正在逐步验证,功能仍在完善中,目前可能存在一些未知问题,如果你需要使用DRC,请评估好相应风险。 DRC在实时数据管道(RDP)的基础上,实现了以下功能:
总体架构以双向复制的场景为例,MySQL复制拓扑可以抽象为下图所示: 图中,MySQL分别部署在IDC_1和IDC_2,彼此相互同步变更事件(Change)。其中同步的工作由DRC来完成。 DRC总体架构如下所示: 图中,S0和S1是DB数据分片。 经过api_router流量分发后,写分片S0的流量由IDC1负责,写分片S1的流量由IDC2负责。IDC1与IDC2之间的数据通过两个DRC实例进行同步。
单个DRC实例的架构如下所示: DRC实例包含三个组件:
关于ApplierApplier是DRC中的主要组件,订阅来自RDP解析后的binlog数据,构造SQL语句后在目标MySQL执行。 Applier的主要功能有:SQL构造, 并行执行,冲突检测与处理,过滤循环复制的数据,中断恢复,重复数据幂等处理。 限制条件
快速开始1. 安装源码安装在源码根目录执行make,即可在build/mysql_applier/bin目录生成Applier可执行文件,同时产生实例配置文件:build/mysql-applier/etc/applier.ini.example。 [apps@localhost drc]$ make[apps@localhost drc]$ ls build/mysql-applier/bin/alarm.sh mysql-applier[apps@localhost drc]$ ls build/mysql-applier/etc/applier.ini.example 2. 修改配置执行以下命令,修改Applier依赖的配置文件。 cp build/mysql-applier/etc && cp applier.ini.example applier.inivi applier.ini 修改Kafka连接信息, 包括:brokerlist、订阅topic、partition和version。 [kafka]#The kafka address of applier to fetch binlog eventbrokerlist = 10.10.10.1:9092,10.10.10.2:9092,10.10.10.3:9092topic = test_topic_1partition = 0version = 1.1.0
修改目标DB连接信息。 [mysql]#The mysql address of applier to writehost = localhostport = 3306user = rootpasswd = 123456
修改Zookeeper连接信息,包括:Zookeeper地址、zk节点路径(多个Applier副本依赖zk进行选主)。 [zk]zk_addr_list = 10.10.10.1:2181,10.10.10.2:2181,10.10.10.3:2181zk_root = /drc/mysql_applier/1000x 修改冲突处理方式,这里选择overwrite,表示如果复制过程中出现冲突,直接覆盖目标DB的记录。 当然,也可以选择time_overwrite, 表示基于时间戳来进行冲突处理,但是前提是表结构需要有特定的时间字段。 #The strategy to handle conflict, may be time_ignore|time_overwrite|ignore|overwrite#if handle conflict base on time,need set the column name of row update timehandle_conflict_strategy=overwriteupdate_time_column = update_time
3. 启动假设配置文件build/mysql-applier/etc/applier.ini已经修改完成,那么执行以下命令启动Applier: mkdir -p build/mysql_applier/logsmkdir -p build/mysql_applier/metricscd build/mysql_applier/bin./mysql-applier 可以通过查看build/mysql_applier/logs目录下的日志文件,检查是否有ERROR信息。如果有ERROR信息,请检查配置文件是否配置妥当。 4. 测试在源DB执行DML或者DDL,检查是否在目标DB重放成功。
性能关于DRC Applier的性能,请查看文档: DRC性能概览。 监控特性关于DRC Applier的暴露的监控特性,请查看文档: 监控特性。 异常告警关于DRC Applier运行过程中的异常告警,请查看文档:异常告警。 管理API关于DRC Applier的提供的http管理API,请查看文档: 管理API。 数据对账DRC提供了对账工具,用于比对两端数据是否一致,请查看文档: 数据对账。 开发团队DRC项目由唯品会基础架构部—数据中间件组开发和维护。开发成员如下: LicenseDRC项目遵循Apache 2.0 license。 ![]() |
请发表评论