暮年|NewSQL角度看Apache ShardingSphere( 二 )
首先 , 中间件的数据库集群 , 可能有自己的主库或者从库 , 包括同步、复制、备份等都是靠MySQL或者PG数据库来实现的 。
其次 , 用户真正能够接触三个产品 , 第一个产品叫ShardingSphere-JDBC , 它定位为轻量级Java框架 , 在Java的JDBC层提供的额外服务 。 它具备解析SQL、分片管理、分布式事务 , 脱敏等功能 。
第二个产品叫ShardingSphere-Proxy , 定位为透明化的数据库代理端 , 提供封装了数据库二进制协议的服务端版本 , 用于完成对异构语言的支持 。 适用于任何兼容MySQL/PostgreSQL协议的的客户端 , 可以管理数据库集群 。
三、功能介绍
仔细观察ShardingSphere的框架 , 我们不难发现中间件左侧的Sharding-Scaling , 它是一个提供给用户的通用的ShardingSphere数据接入迁移 , 及弹性伸缩的调度平台 。
JDBC的核心功能就是Orchestration , 即编排治理 , 配置集中化与动态化、数据治理 。 ShardingSphere提供了界面治理模块——Sharding-UI , 可以快速维护Sharding-Proxy集群 , 方便用户一键式的操作 。
如上图所示 , 从研发的角度来看Apache ShardingSphere的框架 , 最上面的接入端有JDBC和Proxy , 中间层的核心功能是数据分片、分布式事务、数据库治理 , 最下层是数据库集群 。
其实 , Sharding是Apache ShardingSphere的立足之本 。 除了分库分表 , 它还还支持Encrypt(脱敏)和Shadow(影子库) , 所有压测的数据都会分配的影子库中 。 Sharding最核心的还是底层四个模块来做支撑 。
我们必须要解析SQL , 才能理解用户需要什么 。 Parser(解析器)已经重构过很多遍 , 为了实现自主可控 , 保证高效性和正确性 。 除此之外 , Router代表着路由 , Rewriter改写一些SQL , Executor做并行的控制 , 提高整体效率 。
【暮年|NewSQL角度看Apache ShardingSphere】分布式事务主要有两个方面 , ACID强一致性事务和BASE柔性事务 。 值得一提的是 , ShardingSphere分为自研的分布式数据库(DTX)、对接其他公司的解决方案两部分 。 对于用户来说 , 他无需过多了解ShardingSphere , 就可以拥有多种分布式事务的选型 , 这其实是一种非常有意思的方式 。
ShardingSphere不只是一个分布式数据库的原因在于 , 它的Orchestration模块提供了很多功能 , 比如在线变更、分片规则的在线推送 , 以及限流和熔断等 。 用户在了解分片的基础上 , 可以慢慢去探索这个开放生态 , 找到自己想要的功能 。
潘娟强调道 , 分库分表、强一致事务、柔性事务、分布式治理、可视化链路追踪、读写分离等所有的功能都是可以组合在一起的 。 完全的自由组合 , 从而形成一个只满足公司所需要的产品 。
当存储系统或者性能不够的时候 , 数据库就要通过Scaling(迁移平台)进行Scale out(扩展) 。 目标不是放在提高单机性能上 , 而是要做成分布式 , 多个机器来解决 。
推荐阅读
- 景凡育儿经|从非神话传说的角度分析“刘邦斩白蛇”事件的来龙去脉及成因
- 校园风云|也许很简单,看图猜成语:换个角度看
- 暮年|美国丢人丢大发了,央视正式曝光
- 给你说个车|丰田是如何跟大众拉开差距的?,从造车工艺的角度看
- 暮年央视正式曝光,美国丢人丢大发了
- 科学|有一些科学家从另一个角度阐释了人类存在于宇宙的意义
- 行业互联网南方电网高级技术专家黄莹:两个角度看海上风电直流送出技术发展方向
- 反思卷积神经网络:图像角度泛化上的困难重重
- 奥迪A6|从车主的角度,对比宝马5系、奔驰e级、奥迪a6!
- 人人都是产品经理从系统的角度思考:做一看二想三
