首页 > 数据库 >分库分表 Sharding:8. 主流的数据库中间件实现对比

分库分表 Sharding:8. 主流的数据库中间件实现对比

时间:2022-10-10 20:39:41浏览次数:56  
标签:分库 数据源 数据库 中间件 Bee 分表 ORM 分片 Sharding

8.    主流的数据库中间件实现对比
8.1    数据库代理与数据源代理
典型的数据库中间件设计方案有 2 种:服务端代理 (proxy:代理数据库)、客户端代理 (datasource:代理数据源)。
代理数据库的优点是多语言支持,但是相对复杂如代理服务器需要实现 mysql 服务端的通信协议;且不同数据库都要对应有实现。但一般只是支持对 mysql 的实现。
数据源代理,通过数据源使用 JDBC 接口与数据库打交道。因此语言限制使用 Java。这种框架有 Zebra,Sharding-JDBC 等。

8.2    ORM 框架代理
关于主流 ORM 框架分片功能,目前有 hibernate 提供的 hibernate-shards,也可以通过 mybatis 插件的方式编写。相对于前面两种方案,这种方案可以说是只有缺点,没有优点 (引用网络描述) 。
老的 ORM 框架,由于出现年代较早,当时互联网尝未成型,不需要处理那么多数据。而现在是互联网信息爆炸的时代,需要处理海量数据和高并发需求。旧的 ORM 框架,在处理这些新问题时,显得心有余而力不足。另外,新秀 ORM Bee 是在互联网环境中,成长起来的 ORM 框架,在设计之初,就把这些问题考虑进去。
Bee 对只分表 (单库分表)、只分库、分库分表中的读写分离,都支持良好,进行了简化优化。较前面介绍的,Bee 更加简单易用。另外,Bee 2.0 全面支持分库分表,分库分表配置简单,使用方便,性能优越。
8.3    专业分片框架分片功能对比
Zebra,Sharding-JDBC
1). 要解析 sql 语句;
2). 支持的数据库类型有限;
3). 处理流程复杂;
4). 分片逻辑与 DataSource 耦合。

与 Zebra,Sharding-JDBC 相比,Bee Sharding 分片功能:
1) 可以支持已实现 JDBC 规范的所有数据库;
2) 处理流程简单,无需对 sql 字符串进行解析;
3) 代码低侵入设计良好,如 DataSource 无需耦合 Bee 框架的代码;
4) 约定优于配置,使用最好的实现方案作为约定方式,配置简单,用户使用方便;
5) 通过解析实体对象获取分片信息,更准确;
6) 支持四则运算表达式;
7) 配置简单,使用方便;
8) ORM 工具内置支持,无需再使用其它 ORM 中间件;
9) 数据源不与 ORM 代码耦合。

标签:分库,数据源,数据库,中间件,Bee,分表,ORM,分片,Sharding
From: https://blog.51cto.com/u_15822049/5745209

相关文章