美文网首页产品设计
清结算 - 数据分库及部署架构分析

清结算 - 数据分库及部署架构分析

作者: 一路向北_c6e6 | 来源:发表于2018-12-23 17:20 被阅读0次

考虑先再,清结算对账上进行测试和运维经验学习。

改造实施步骤设计,参考:
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)   水平分库某张表太大,单个数据库存储不下或访问性能有压力,把一张表拆成多张,每张表存放部分记录,保存在不同的数据库里,水平分库需要对系统做大的改造。

常用的分库分表中间件

简单易用的组件:

当当sharding-jdbc

蘑菇街TSharding

强悍重量级的中间件:

sharding

TDDL Smart Client的方式(淘宝)

Atlas(Qihoo 360)

alibaba.cobar(是阿里巴巴(B2B)部门开发)

MyCAT(基于阿里开源的Cobar产品而研发)

Oceanus(58同城数据库中间件)

OneProxy(支付宝首席架构师楼方鑫开发)

vitess(谷歌开发的数据库中间件)

作者: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

相关文章

网友评论

    本文标题:清结算 - 数据分库及部署架构分析

    本文链接:https://www.haomeiwen.com/subject/rlvnkqtx.html