如何快速了解Sharding-JDBC原理

1.查看文档

https://shardingsphere.apache.org/document/current/cn/overview/

了解示例

https://github.com/apache/incubator-shardingsphere-example

在运行示例前,请注意下面两点:

1.安装Docker容器环境(具体运行省略)

https://github.com/apache/incubator-shardingsphere-example/blob/dev/docker/sharding-jdbc/sharding/docker-compose.yml

2.运行脚本

The manual schema initial script is in https://github.com/apache/incubator-shardingsphere-example/blob/dev/src/resources/manual_schema.sql, please execute it before you first run the example.

2.了解下面几篇文章

下面两篇文章来自程序员DD的博客:

SpringBoot中使用ShardingJdbc切分数据库表

https://mp.weixin.qq.com/s?__biz=MzAxODcyNjEzNQ==&mid=2247485148&idx=1&sn=dbc0e92e9e961a85ecd583208d728fe8&chksm=9bd0ab44aca72252b5c8ec3870471145117d760b5c533e313fec57cd634017e5b388670a13ea

3.使用ShardingJdbc应对大数据量的案例

https://blog.csdn.net/j3T9Z7H/article/details/80276306

摘抄博文几幅图的架构会更加清晰

ShardingJdbc这款分库分表组件代表了客户端类的分库分表技术框架,其定位为轻量级数据库驱动,可以由Spring Boot这样的业务工程直接快速集成,以jar包形式提供服务,无需额外部署和其他依赖。对于业务系统的开发人员与数据库运维人员无需改变原有的开发与运维方式。在2.X版本中,采用"半理解"理念的SQL解析引擎,以达到性能与兼容性的最大平衡。因此,ShardingJdbc即为增强版的JDBC驱动,其优势在于无需对原有的业务工程进行任何改造的基础上,即可使其拥有分库分表的能力,成本较低,易于上手。但是,也有缺点,中间件与业务应用工程绑定在一起,对应用本身有侵入。并且目前只支持Java语言,问题难以追踪。

如何快速了解Sharding-JDBC原理_第1张图片

系统集成ShardingJdbc的设计

根据上面对“流水”/“明细”型业务数据的场景分析,基本可以画出SpringBoot业务工程集成分库分表组件ShardingJdbc的架构设计图:

如何快速了解Sharding-JDBC原理_第2张图片

从上面业务系统架构设计图中可以看出,明细型业务数据(比如之前提的,清算系统的清分明细、云管平台的资源计量明细、订单系统的订单流水和云计算主机资源上报的性能数据明细)根据设置的数据分片路由规则先落库至shardingdb00~ shardingdb04五个分库的对应分表中。然后,利用ShardingJdbc组件对分组汇总查询SQL的解析、改写、路由和归并结果的能力,分别对五个库中对应业务分表中的数据汇总累加求出每天/每月同一个用户下的资源计费累加值。最后,将这些“加工”后的业务数据批量插入至共享库share_db中,其他定时任务再从共享库中读取并生成最终形式的业务数据(比如,按月的账单、话单或者性能计量值)。其中,对于异常情况(明细流水异常、汇总异常和系统异常等),需要将其保存至共享库中的异常信息表中。另外,在明细落库之前还需要考虑幂等前置校验的问题。对于ShardingJdbc组件的分库分表路由规则可以参照下图:

如何快速了解Sharding-JDBC原理_第3张图片

 

你可能感兴趣的:(Java)