Service Mesh的延伸论道Database Mesh

在微服务大行其道的今天,数据库如何服务化?如何降低开发和运维的成本?势必需要数据库中间层,而Sharding-Sphere是其中的优秀代表,除了可以解决数据分片和数据库治理外,还支持分布式事务,极大减轻了数据库应用开发者的负担。
展开查看详情

1. Service Mesh的延伸 之论道Database Mesh 分享人:张亮 日期:2018年07月25日

2.Service Mesh风头正劲

3.Service Mesh产品多样化

4.Service Mesh的优势 云原生 零入侵 可观察性 面向运维

5.服务化之后,数据库怎么办? 服务 • 无状态 • 根据规则路由 • 业务方处理事务 数据库 • 有状态 • 根据SQL路由 • 数据库自动处理事务

6.数据库的进化趋势 NoSQL • SQL • SQL • ACID • SQL • ACID+BASE • 分布式 • BASE ACID • 分布式 • 分布式 RDBMS NewSQL

7.NewSQL的分类 What's Really New with NewSQL? New Architecture Transparent Sharding Middleware Database-as-a-Service

8.数据库中间层的优势 开发 • SQL 运维 • DBA 系统 •事务

9.数据库中间层应具备的能力 分片化 观察能力 多副本 治理能力 数据一致性 弹性化

10.数据分片 App1 App2 App3 App1 App2 App3 DB DB1 DB2 DB3

11.数据分片:引入中间件 App1 App2 App3 数据库中间件 write M1 M2 M3 sync read S1 S2 S3

12.读写分离 S read sync App1 App2 App3 write M

13.数据分片 + 读写分离 M1 M2 M3 write sync App1 App2 App3 read S1 S2 S3

14.数据分片 + 读写分离:引入中间件 App1 App2 App3 数据库中间件 write M1 M2 M3 sync read S1 S2 S3

15.分布式事务:定义 传统事务:ACID 柔性事务:BASE Atomicity - 原子性 Basically Available - 基本可用 Consistency - 一致性 Soft state -软状态 Isolation - 隔离性 Eventual consistency - 最终一致性 Durability - 持久性

16.分布式事务:分类 XA 最大努力送达 Saga TCC 业务改造 无 无 实现补偿接口 实现TCC接口 回滚 支持 不支持 支持 支持 一致性 强一致 最终一致 最终一致 最终一致 隔离性 原生支持 不支持 不支持 Try接口支持 并发性能 严重衰退 无影响 无影响 略微衰退 长事务 短事务 事务最终成功 长事务 适合场景 应用方控制并发 并发较低 高并发 高并发 高并发

17.分布式事务:柔性事务自动化 快照记录 SQL逆向 隔离级别 • INSERT • INSERT -> DELETE • 无隔离 • 解析 • UPDATE -> UPDATE • 版本控制 • 记录 • DELETE -> INSERT • 记录锁 • UPDATE&DELETE • 影子表 • SELECT • 记录

18.弹性伸缩:数据迁移 迁移监听 冗余数据清 在线双写 理 数据源切换 离线迁移

19.治理监控 配置动态化 负载均衡 熔断 & 禁用 安全 & 权限 & 脱敏 APM

20.现有实现方案对比 客户端 • 支持任意数据库 • 数据库连接数占用高 • 仅支持单一开发语言 • 性能损耗低 • 无中心化 代理端 • 仅支持单一数据库 • 数据库连接数占用低 • 支持任意开发语言 • 性能损耗高

21.Sidecar的优势 JDBC Proxy Sidecar 数据库 任意 单一 单一 连接数 高 低 高 异构语言 仅Java 任意 任意 性能 损耗低 损耗略高 损耗低 无中心化 是 否 是 静态入口 无 有 无

22.Database Mesh架构图

23.Sharding-Sphere 核心功能 数据分片 分布式事务 数据库治理 弹性伸缩 管控界面 Sharding -Sphere 实现方案 Sharding-JDBC Sharding-Proxy Sharding-Sidecar 云原生 无中心 零侵入

24.Sharding-Sphere:数据分片

25.Sharding-Sphere:分布式事务

26.Sharding-Sphere:治理中心 核心功能 应用 业务代码 应用 业务代码 •配置集中化 &动态化 Sharding- Sharding- •数据库熔断 & 禁用 Sphere Sphere 注册中心 支持的注册中心 •ZooKeeper •Etcd

27.Sharding-Sphere:APM

28. 演进线路图 Sidecar 版本:4.0.X Proxy 版本:3.0.X JDBC + 数据分片 数据库治理 多数据副本 版本:1.X 版本:2.X 版本:4.1.X 分布式事务 版本:3.1.X 弹性伸缩 版本:4.2.X 图例: 已完成 进行中 规划中

29.联合社区打造开源解决方案