- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
周斌:使用ShardingSphere构建分布式数据库
视频回放全集:
展开查看详情
1 .openGauss开源分布式解决方案 2022.05.12 https://opengauss.org
2 .个人简介 姓名:周斌 公司:华为 职位:openGauss 数据库开发工程师 经历:2012年入职华为,负责openGauss工具链 生态建设和分布式相关开发工作。 https://opengauss.org
3 .目录 01 openGauss的业务场景 02 分布式场景的诉求 03 openGauss与shardingsphere 04 openGauss开源分布式解决方案 05 openGauss分布式使用 06 openGauss分布式极致性能 07 openGauss分布式应用 08 openGauss分布式演进 https://opengauss.org
4 .openGauss的业务场景 聚焦主备高性能高可用场景,增强支持多种数据库部署模式 基础场景 增强场景 主备部署 分布式部署 集群部署 业务分库分表 业务分区 一主N备 多地多中心 分布式中间件 高性能单机主备 业务库1 业务库2 业务库N Node(S) Node(S) …… …… DB1 DB2 DBN DN1(M) openGauss 集中式存储 主备高性能场景 分布式场景 RAC替代场景 直接替换 直接替换 业务改造 直接替换 业务改造 数据量大,关联弱, 数据关联强,跨库查 一写多读 ,多业务, 单业务,多写多读 跨库查询、事务少 询和事务多 多写多读 https://opengauss.org
5 . 分布式场景的诉求 u 数据按sharding key划分,满足大规模业务量场景 u 支持分布式查询、支持分布式事务 u 读写负载均衡 u 水平扩展,可扩展性强,在线扩缩容 u 灵活的分布式体系,无单点故障 u 吞吐量和低延时 u 易部署和运维 https://opengauss.org
6 . openGaussg开源分布式解决方案 ShardingSphere- 5 Proxy/JDBC 4 SELECT * FROM table1001 SELECT * FROM table1002 HAProxy 43 HAProxy HAProxy HAProxy 2 Patroni Patroni Patroni Patroni Patroni etcd etcd etcd Patroni Patroni Patroni Patroni DN1(M) Node(S) Node(S) Node(S) Node(S) Node(S) Node(S) Node(S) Node(S) * 数据按sharding key划分,满足大规模业务量 1 数据面Paxos一致性 1 场景 * 支持分布式查询、支持分布式事务 上海AZ 1 上海AZ 2 深圳AZ 1 深圳AZ 2 * 读写负载均衡 * 水平扩展,可扩展性强,在线扩缩容 * 灵活的分布式体系,无单点故障 * 吞吐量和低延时 1 内核能力:Paxos主备副本一致性、主备自仲裁、选主优先级、策略化多数派、日志并行复制 • 易部署和运维 2 CM:基于etcd和Patroni的集群管理工具(将替换为openGauss-CM) 本方案对以上需求有良好的支持 3 HAProxy:负载均衡 + 固定IP K8S:支持基于Docker和K8s的集群部署,支持pg-pool的类云原生架构 4 ShardingSphere-Proxy:自动分片,读写分离,分布式事务,分布式查询,DistSQL 5 https://opengauss.org
7 .openGauss与shardingsphere openGauss在OLTP场景下有超高性能和可靠性,shardingsphere是业界领先的开源分布式中件间解决方案,二者结合使得用 户性能、可靠性与可扩展性兼得。二者社区有深度合作: SQL适配 极致性能 弹性伸缩 针对语法处理额外增加了专用于 适配openGauss批量插入协议,极大的 提升了大规模插入性能;针对 scaling功能完美适配openGauss逻辑 openGuass的功能模块,包括适配支 openGauss调整执行计划,优化多个 复 制 槽 的 mpp_decoding 插 件 , 迁 移 持了表、索引、CURD语法、事务等 瓶颈点和热点函数,充分利用 时服务不停止,扩缩容数据不丢失,新 功 能 , 使 用 shardingsphere-proxy openGauss高性能特性。 旧配置生效秒级切换。 就像使用openGauss一样平滑过渡。 已验证16节点下性能>1000万tpmc 安全认证 双路由机制 更多合作 适配openGauss更安全的sha256和 支持jdbc和proxy混合访问数据库动 事务下读写分离、游标、视图、工具 sm3认证协议,打造默认安全的分布式 态双路由模式,保持客户端始终处于 链。。。 数据库。 高性能状态,避免超大查询导致 OOM。 https://opengauss.org
8 .openGauss与patroni patroni: 在分布式方案中单分片可靠性通过1主多备来保障,而通过patroni可以完成主备切换。官方仓库已经有适配og的patroni版本: 链接 https://opengauss.org
9 .openGauss与haproxy haproxy: 在分布式方案中,如果单分片出现故障之后,patroni会主动介入并完成主备切换;但是这个切换上层应用无法感知,这将上层 应用无法正确访问分片数据。而在此之上引入haproxy便可解决此问题。haproxy可以配置读写分离功能,上层应用只需要始终绑定 haproxy的相应地址即可完成跟主功能。 https://opengauss.org
10 . openGauss分布式使用 随着分布式方案引入的组件越来越多, 用户需要的配置也相应的增加,这会增加使用分布式的难度。 基于此我们提供了分布式镜像包,配合脚本工程即可一键式部署分布式数据库。用户可以基于此进行 体验或定制功能。 各个组件也可以单独配合openGauss使用,社区提供了配套的使用指导和源码,可以搜索blog: 组件 博客 链接 shardingsphere 如何利用shardingSphere-proxy搭建openGauss分布式环境 链接 patroni patroniForOpenGauss高可用方案 链接 haproxy HAProxy适配openGauss使用指导书 链接 k8s openGauss在kubernetes集群环境上的部署 链接 https://opengauss.org
11 . openGauss分布式极致性能 本次330发布的openGauss版本中,shardingsphere(8)+opengauss(8节点) 16节点鲲鹏920性能超 过1000万tpmc。 部署组网 性能(tpmc) 损耗比 1opengauss 150万 - 1ss-proxy + 1opengauss 104万 30% 1ss-jdbc + 1opengauss 140万 7% 1ss-proxy + 7ss-jdbc + 8opengauss 1076万 10% 使用openGauss + shardingsphere组成的分布式数据库,可以在继承openGauss高性能的情况下 获得分布式的能力。shardingsphere启动时的默认参数与openGauss配合已经是最优性能。 https://opengauss.org
12 . openGauss分布式应用 openGauss-server的源码托管在gitee上,它的问题单只有简单的筛选功能,统计个人信息和版本质量需要通过表格和专人管 理,耗时耗力。所以我们开发了针对gitee的问题单管理系统,它可以自动从gitee上拉取问题单,问题单可以从多方面进行看板 度量,且集成了通知服务,确保重大问题及时处理。 整体方案 关键设计: l 云原生openGauss分布式系统 l 基于版本发布时间的分库,平滑扩容 l 基于代码仓库id分片,充分利用openGauss高性能 l 支持PB级代码仓库问题单管理 https://opengauss.org
13 .openGauss数据库分布式演进 内部自用孵化阶段 à 联创产品化阶段 à共建生态 生态构建 产品化 开源&内部自用 2020- 2021 2021 - 2022 2022~ l +,$-+./0 • !"#$%&'()* • 1>?@A1"2BCDE 1"234567 /F 89:;<= • GHIJKLMNOPQR 9ST https://opengauss.org
14 .Thank you! https://opengauss.org
15 .ShardingSphere小助手 https://opengauss.org