ITPub博客

首页 > 数据库 > 国内数据库 > GBase 8s JDBC 的读写分离

GBase 8s JDBC 的读写分离

原创 国内数据库 作者:wj_2021 时间:2021-04-21 09:41:03 0 删除 编辑


GBase 8s JDBC 的读写分离 功能,是基于 GBase8s 数据库集群实现的一种具体解决方案。旨在充分发挥 GBase8s 数据库集群的计算和存储能力,更好的满足用户对数据库性能方面的需求。

 

本文将简述读写分离的原理以及使用场景,然后展开说明 GBase 8s JDBC 在实现读写分离功能的方案中,与同类产品相对比的几个优点。

 

读写分离(Read/Write Splitting) 简介

 

 

 

原理: 在 GBase8s 数据库集群中,数据库节点分为主节点和从节点。其中主节点(master)处理 事务 性的增加、修改、删除(INSERT、UPDATE、DELETE)等写入行为操作,而从节点(slave)处理SELECT类型的读取行为操作。

使用场景: 在实际应用的业务场景中,我们能发现读取行为和写入行为有着不同的特点。读取行为操作,访问量大、耗时短;而写入行为操作,访问量小、耗时长。因此我们将主从节点进行写和读的分离,让写和读在访问 GBase8s 数据库集群时互相不干扰, 并且随着从节点 的 扩展, 读取 性能有 明显的 线性提升 , 从而 更好的满足用户对数据库性能方面的需求。

 

GBase 8s JDBC 的读写分离 的优点

GBase 8s JDBC 的读写分离功能与其他开源解决方案相比,更加从用户角度考虑用户所面临的实际问题(300%的满足用户)。具有以下三个优点:

l  代码零入侵,与原有业务100%兼容

l  连接零损耗,连接性能100%充分发挥

l  SQL零修改,对SQL语句的100%支持

 

代码零入侵,与原有业务100%兼容

GBase 8s JDBC 的读写分离功能在对原有Java项目改造升级上是十分友好的,尤其是与其他开源中间件相比。我们对比一下开源中间件与GBase 8s JDBC驱动在实现读写分离功能时对代码的改动。

使用 Sharding-JDBC 实现读写分离功能,对代码的改造如下:

引入Maven依赖 :

 

基于Java 编码的规则配置

 

 

使用GBase 8s JDBC驱动实现读写分离功能,对代码“零”改造。

GBase 8s JDBC驱动原生支持读写分离,不需要额外的依赖包,也不需要对原有项目的Java代码进行任何改造,只需要在配置文件中设置参数开启读写分离功能即可。

 

连接零损耗,连接性能100%充分发挥

GBase 8s JDBC 的读写分离功能在对数据库连接上无性能损耗,尤其是与其他开源中间件相比。我们对比一下开源中间件与GBase 8s JDBC驱动在实现读写分离功能时对数据库连接的使用方案。

使用mycat实现读写分离的部署方案,如下:

 

使用GBase 8s JDBC驱动实现读写分离功能,连接零损耗。

 

GBase 8s JDBC驱动原生支持读写分离,不需要额外的中间件做转发,Java应用程序直接连接 GBase8s 数据库集群,不在连接上增加任何额外负担 。

 

SQL零修改,对SQL语句的100%支持

 

GBase 8s JDBC 的读写分离功能支持所有SQL语句,其他开源产品都存在着一些不支持的情况,使用上存在着一些限制。比如 Sharding-JDBC 的使用限制:不支持子语句,不支持UNION 和 UNION ALL,不支持批量插入,不支持DISTINCT聚合。

GBase 8s JDBC驱动与 GBase8s 数据库集群紧密结合,完美支持所有SQL,用户在编写SQL语句时无需任何特殊修改。

 

总结

GBase 8s JDBC驱动在实现读写分离功能时,完全从用户角度出发,考虑用户的实际问题,如旧项目升级、技术人员学习曲线等,基于此实现了代码零入侵、连接零损耗、SQL零修改的读写分离功能。在满足用户需求的同时,为用户节约宝贵的时间成本和人力成本。

 

 

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69993860/viewspace-2769017/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-01-25

  • 博文量
    35
  • 访问量
    22868