ShardingSphere 介绍与简单入门

2020-09-24 11:03:36 浏览数 (1)

Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款相互独立,却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。

周末一天能干啥?

于是,我将 Apache ShardingSphere 产品介绍与开发入门通篇阅读了一遍。

那么,本周将围绕 “Apache ShardingSphere” 进行展开。

1. 为什么要关注 ShardingSphere

最近发现自己关注的公众号,很多都喜欢重新造轮子。先不说喜不喜欢,我还在为轮子用什么螺丝伤脑筋。

没错,我也喜欢重新造轮子。

我想造一个分布式系统的轮子,于是我大体分析了一下需要的架构。整个骨干必须要有:分布式数据库、微服务、负载前端、共享缓存。

如何存取不同数据库的数据?

如何保证数据的完整与正确?

如何治理这么多的数据库?

ShardingSphere 提供了数据分片、读写分离、编排治理、分布式事务的能力,然后完美的解决了上述的问题。

2. Apache ShardingSphere 简介

它从2016年开源,到2020年4月16日成为 Apache 软件基金会的顶级项目。目前已经有 147 家公司在使用 ShardingSphere,涉及了金融、电子商务、数字化云与服务、出行、物流、互联网教育、互联网文娱等行业。

3. Apache ShardingSphere 架构

ShardingSphere 由 JDBC、Proxy 和 Sidecar(规划中)这 3 款相互独立,却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。

ShardingSphere-JDBC 采用无中心化架构,适用于 Java 开发的高性能的轻量级 OLTP 应用;ShardingSphere-Proxy 提供静态入口以及异构语言的支持,适用于 OLAP 应用以及对分片数据库进行管理和运维的场景。

4. Apache ShardingSphere 功能列表

  • 数据分片
    • 分库 & 分表
    • 读写分离
    • 分片策略定制化
    • 无中心化分布式主键
  • 分布式事务
    • 标准化事务接口
    • XA 强一致事务
    • 柔性事务
  • 数据库治理
    • 分布式治理
    • 弹性伸缩
    • 可视化链路追踪
    • 数据加密

5. 简单入门

以下内容是一个简单的、分库分表的、查询示例。

创建分库与分表

引入 Maven 依赖

分库分表规则配置

数据源配置

测试类

查询测试结果

6. 总结

最后,本文只是简单了测试了分片查询,其他的例如:分片新增、分片修改、分布式事务与数据库治理都还没去了解。

0 人点赞