考虑先再,清结算对账上进行测试和运维经验学习。
改造实施步骤设计,参考:
https://pingcap.com/docs-cn/ROADMAP/
TiDB 企业版的收费问题。
TiDB <<>> Oralce <<>> Kafka <<>> MySQL。
这几者之间的 数据如何同步?在归档历史数据库中也要考虑使用TiDB。
这些存储管理系统,如果替换的话,数据如何迁移呢?
使用 syncer 增量导入数据
上面我们介绍了如何使用 mydumper/loader 将 MySQL 的数据全量导入到 TiDB,但如果后续 MySQL 的数据有更新,我们仍然希望快速导入,使用全量的方式就不合适了。
TiDB 提供 syncer 工具能方便的将 MySQL 的数据增量的导入到 TiDB 里面。
syncer 属于 TiDB 企业版工具集,如何获取可以参考 下载 TiDB 企业版工具集。
但是,全量数据可以使用免费的mydumper导入。
垂直切分
先对订单库进行垂直切分,将原有的订单库分为基础订单库、订单流程库等,本文就不展开讲了。

水平切分
垂直切分缓解了原来单集群的压力,但是在抢购时依然捉襟见肘。原有的订单模型已经无法满足业务需求,于是我们设计了一套新的统一订单模型,为同时满足C端用户、B端商户、客服、运营等的需求,我们分别通过用户ID和商户ID进行切分,并通过PUMA(我们内部开发的MySQL binlog实时解析服务)同步到一个运营库。

整体架构-- 分库的整体技术架构上线步骤-- 分库改造实施上线项目总结水平分库说明数据库拆分有两种:1) 垂直分库数据库里的表太多,拿出部分到新的库里,一般是根据业务划分表,关系密切的表放同一数据库,应用修改数据库连接即可,比较简单。2) 水平分库某张表太大,单个数据库存储不下或访问性能有压力,把一张表拆成多张,每张表存放部分记录,保存在不同的数据库里,水平分库需要对系统做大的改造。
常用的分库分表中间件
简单易用的组件:
强悍重量级的中间件:
作者:jackcooper
链接:https://www.jianshu.com/p/32b3e91aa22c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
清结算 - 应用数据部署架构图设计


外部系统部分:
1. 外部系统,交易类的都会进入到计费清结算进行计费并生成计费结果详情列表。
2. 如果是商户结算款查询,以及账户查询类的可以考虑直接访问清结算账户。
清结算应用节点集群:
1. 计费清结算
2. 清结算账户
3. 清结算对账
清结算数据库集群:
1. 计费清结算>>
数据库类型:
Oracle >> Mysql;暂时保留Oralce数据库,后期改为Mysql。
数据库量及部分大数据表分析:
本数据库的部分数据量每日较大的表:交易流水落地表(2000万),计费结果详情表(2000万*N-费用项个数)等。其他的表,结算单数据,付款单数据等,也会随着天数的累计,每日几万甚至几十万的增长。
数据库读取需求(考虑部分从读库查询,或者历史备份数据库查询):
a. 程序的聚合及退货,退款等逻辑处理需求。
b. 记账对账逻辑:理论要和清结算账户的记账结果逐日对账,但再考虑。
c. 商户查询订单及费用明细等
d. 清结算运营平台查询管理需求。
e.其他需求。
数据库数据及时备份如历史数据库需求:
考虑到部分数据库表量比较大,考虑如何,以及那个时机将数据移入历史备份数据库。
数据库同步(主库到从库):Bin-log?
数据库同步(分从库到总库):OGG-Oracle GoldenGate?
2. 新增清结算账户(分析方式类似)>>
数据库类型:mysql
数据库量及部分大数据表分析:
数据库读取需求(考虑部分从读库查询,或者历史备份数据库查询):
数据库数据及时备份如历史数据库需求:
数据库同步(主库到从库):Bin-log?
数据库同步(分从库到总库):Bin-log?
3. 清结算对账(分析方式类似)>>
数据库类型:Oracle >> Mysql
数据库量及部分大数据表分析:
数据库读取需求(考虑部分从读库查询,或者历史备份数据库查询):
数据库数据及时备份如历史数据库需求:
数据库同步(主库到从库):Bin-log?
数据库同步(分从库到总库):Bin-log?
4.清结算总库
数据库类型:Mysql
数据库量及部分大数据表分析:
数据库读取需求(考虑部分从读库查询,或者历史备份数据库查询):
数据库数据及时备份如历史数据库需求:
数据库同步(主库到从库):Bin-log?
数据库同步(分从库到总库):Bin-log 或者 OGG-Oracle GoldenGate?
其他事
参考资料:
1. mysql主从同步配置-Bin-log方式
2.Oracle GoldenGate实时同步oracle数据到mysql
网友评论