分布式数据库及数据中间件能力验证与实践

为了避免走入“盲目跟风最终导致巨大投入打水漂”的开源误区,张小虎老师主要从四个方面介绍了甜橙金融基于开源分布式数据库架构选型的思考,分别是:选择合适的开源技术、使用开源架构来支撑创新业务、建立完善的保障制度、锻炼具备相关技术的团队。随后他详细讲解了甜橙金融深度参与的两大开源分布式数据库技术ShardingSphere和TiDB,以及它们在甜橙金融内部多种场景下的应用实践。

展开查看详情

1.分布式数据库及数据中间件能力验证与实践 演讲人:张小虎 中国电信甜橙金融 技术创新中心总经理 全球敏捷运维峰会 广州站

2.个人简介 照片 简介 张小虎 现任中国电信甜橙金融高级总监、技术 创新中心总经理。 多年架构设计实施经验,目前负责甜橙金融技 术创新相关工作,在云原生、新媒介、5G+金 融、边缘计算及区块链等领域有较深涉猎。 甜橙金融(翼支付)是中国电信股份有限公司全资子公司天翼电子商务有限公司的核心品牌。 它是中国人民银行核准的第三方支付机构,中国证监会核准的基金支付结算机构,现在已拥有支付、财富管理、供应链融资、消费金融、信息技术等 互联网金融关键要素。 全球敏捷运维峰会 广州站

3.NewSQL分布式数据库实现方案 Transparent New Architecture Database-as-a-Service Sharding Middleware • TiDB • Apache ShardingSphere • Amazon Aurora • CockroachDB • MyCat • PolarDB 全球敏捷运维峰会 广州站

4.基于开源分布式数据库架构选型思考 1.选择 2.使用 适合的开源技术 开源架构来支撑创新业务 建立正确的开源软件选型标准。 通过积累最佳实践方法和经验,设计出符合业务需求和管 社区成熟度、软件成熟度 理需求的开源架构,以满足创新业务的运行支撑要求。 3.建立 4.锻炼 完善的保障制度 具备相关技术的团队 建立部署管理,配置管理,日志管理和监控告警管理等多 建立开发和运维部门中的核心开源技术团队,实现开源技 种手段,实现对开源软件和开源架构的安全可控。 术领域的可持续性的发展。 充分利用自身条件,与外部开源社区建立良好沟通和互动 渠道:”请进来”或”走出去”。 全球敏捷运维峰会 广州站

5.甜橙金融深度参与开源分布式数据技术 • 分布式数据中间件开源项目 • NewSQL 分布式数据库开源项目 • Apache 孵化器项目(2018/11/10) • CNCF 孵化器项目(2019/5/21) • 9200+ Star • 21000+ Star • 京东数科项目发起及维护 • PingCAP 项目发起及维护 • 甜橙金融深度参与及贡献 • 甜橙金融深度参与和投产实践 • ShardingSphere PMC 成员 • 聚焦多中心多活及云原生领域能力 积极参与国内数据库及开源社区 智能运维,云数据库管理,数据分布式传输等领域长期研究 人工智能,区块链,安全,大数据领域积极实践 全球敏捷运维峰会 广州站

6.ShardingSphere 功能架构 核心功能 数据分片 分布式事务 数据库治理 Apache 管控界面 弹性伸缩 ShardingSphere 实现方案 Sharding-JDBC Sharding-Proxy Sharding- 云原生 无中心 零侵入 Sidecar 全球敏捷运维峰会 广州站

7.ShardingSphere 的技术优势与特点 数据分片为核心的多种解决方案 多种形式接入 数据编排与治理 微内核 & 开放生态 全球敏捷运维峰会 广州站

8.甜橙金融 ShardingSphere应用架构 • Java应用通过Sharding-JDBC接入 • 通过DTS将MySQL数据同步到ES & HBASE中,满足OLAP场景。 • MOZIS运维平台通过Sharding- Proxy接入,提供日常运维支持 • 利用配置中心对相关配置信息进行统 一管理 全球敏捷运维峰会 广州站

9.甜橙金融 ShardingSphere应用实践 – 应用性能监控 平台架构 • 基于pinpoint进行的二次开发。 • 采用字节码增强技术 • 编写plugin完成ShardingSphere 核心链路方法的监控 全球敏捷运维峰会 广州站

10.甜橙金融 ShardingSphere应用实践 – 应用性能监控 全球敏捷运维峰会 广州站

11.甜橙金融 ShardingSphere应用实践 – Proxy优化 Sharding-Proxy多逻辑数据源支持 Sharding-Proxy Backend NIO 优化 全球敏捷运维峰会 广州站

12.甜橙金融 ShardingSphere应用实践 – 可视化管控 • 数据分片配置管理 • 运行实例编排管理 • 自动弹性扩缩 全球敏捷运维峰会 广州站

13.大并发强一致分布式数据处理场景的思考 业务场景需求 分库分表模式 NewSQL 模式 业务维度的选择和切分 适合业务中数据模型容易按照单一维度切分和查询的场景。 不限维度的自由查询和数据建模(与单机数据库 (比如时间+Hash) 相同) 跨库跨节点复杂计算 数据 切分后无跨节点跨库聚合及复杂关联查询的业务很友好 不限维度的进行跨节点跨库 的 JOIN 关联及聚合 和便利 计算。(包含计算下推能力) 分布式强一致事务 数据 切分后无跨节点跨库聚合及复杂关联查询的业务很友好 适合联机交易业务有强一致分布式事务刚需的场 和便利 景 大表占比 数据库内大表(千万到亿以上行记录规模) 数量占比较小的业 数据库内大表行记录规模和数据规模没有什么限 务场景比较便捷 制,适合数据快速增长的业务 混合负载 (HTAP) 适合业务单一负载,尤其是计算复杂度低的大并发联机交易 适合同时存在有 OLTP 联机交易和 在线实时分析 的业务场景 弹性在线热扩容 对于业务中有足够变更窗口,不需要在线弹性热扩容的场景 适合需要弹性在线热扩容,提高计算吞吐和存储 比较轻量便利。 容量的场景。 计算和存储自动平衡 对于扩容后对数据没有计算重平衡及存储重平衡要求的业务 适合业务在扩容后 需要做自动的计算重平衡和存 比较方便。 储重平衡的场景 全球敏捷运维峰会 广州站

14.甜橙金融 数据处理技术方案选择思考 技术方向/评估维度 容量阈 性能阈 大表数量 分片规则 增长趋势 HTAP 拓扑标准 RDS 方案 (单实例) <3T <20000 QPS N/A N/A N/A N/A 一主两从标准架构 >3T & 分布式数据中间件方案 >20000 QPS <3 仅限日期,Hash 固定分片 不支持 两主两从标准架构 <10T NewSQL 方案 >3T >20000 QPS >=3 N/A 动态扩容 支持 动态扩展调整 注:以上为 甜橙金融 根据自身业务特点,以及对分布式数据处理技术的实践总结的选择路径,并在未来随着技术的进行灵活调整。其他 用户也需要通过自己的业务特点来有针对性的设计对应的方案路径。 全球敏捷运维峰会 广州站

15.典型 TiDB 应用架构 • 基于 2013 年 Google Spanner / F1 论文 • 基于 2014 年 Stanford 工业级分布式一致性协议实 现 Raft 博士论文 • 水平线性扩展、强一致分布式事务、故障自恢复的高 可用(非主从)、跨数据中心多活 全球敏捷运维峰会 广州站

16. 甜橙金融 TiDB 研究与实践 – 联机交易负载场景 • 财务稽核,对账,反洗钱,账单,营销等重要业务 • Multi – Raft 协议 保证节点间副本多数派强一致 • 数据透明打散,库内业务大表不用人工切分,表记录到 亿/十亿及以上规模上性能无影响 • 去中心化的 2PC (两阶段递交) 确保跨 Region 事务的强一致,达到 ACID 标准 • 业务不需要做分库分表改造,CRUD 行为与单机保持一致 • 表上任意列上都可以做分布式查询计算与更新操作 • 计算支持过滤,聚合等下推到 数据节点分布式计算 • MySQL JDBC 和 Mybatis ORM 直接使用 • 直接在线扩缩容,业务代码和数据模型不需要做调整 • 计算层和存储层均可通过节点增加线性扩展数据库的计算吞吐和容量 投产 OLTP 交易集群典型配置: 集群角色 配置 物理节点 并行实例数量 部署拓扑 计算节点 32 Core,256GB Mem 3 3 每台启动 1个 TiDB 进程,可在线 增加 存储节点 48 Core, 256GB Mem ,3TB SSD *3 4 12 每台启动 3 个 TiKV 进程,可在线增加 全球敏捷运维峰会 广州站

17.甜橙金融 TiDB 研究与实践 – 跨中心多中心多活容灾场景 全球敏捷运维峰会 广州站

18.甜橙金融 TiDB 研究与实践 – 跨中心多中心多活容灾场景 根据: Site (dc=) 映射物理中心 Zone (zone=) 映射逻辑区 Rack (rack=) 映射物理机架 Host (host=) 映射物理主机 全球敏捷运维峰会 广州站

19.甜橙金融 TiDB 研究与实践 – 云原生分布式数据库场景 High Level 甜橙金融 云服务平台 Management API 服务器节点 (Node A …. Node N) • 数据库组件实例调度在不同硬件节点 • 根据负载和调度策略动态分布 • 可定制调度策略,改变默认的行为 • 集群实例交错在不同硬件节点 • 容器集群扩缩配合 TiDB 集群扩缩 • API 封装集成到上游统一运维管理平 台 • 监控告警上报汇聚到统一监控/告警 平台 • 高可用管理和自动 Failover 通过 AZ(可用区)分布到多个可用区域 全球敏捷运维峰会 广州站

20. 甜橙金融 TiDB 研究与实践 – HTAP 混合负载场景 • 通过 Raft Learner 独立同步一套列存 • Raft Learner 提供极低消耗的副本同步 • Raft Learner 读取协议配合 MVCC 提供强一致的读取 • 通过 Label 进行物理隔离,AP / TP 作业互相无影响 列存 列存 全球敏捷运维峰会 广州站

21. THANK YOU! 全球敏捷运维峰会 广州站

数据连接未来!围绕Database、Bigdata、AiOps的企业级专业社群。行业大咖、技术干货,每天精品原创文章推送,每周线上技术分享,每月线下技术沙龙,受众20W+。