数据库中间件是什么?
2022-09-30
36 阅读
数据库中间件可以简化对读写分离以及分库分表的操作,并隐藏底层实现细节,可以像操作单库单表那样操作多库多表,数据库中间件主要能力:支持读写分离支持从库读负载均衡支持分库操作支持分表操作支持跨库关联查询对事务处理的支持数据安全审计能力主流的中间件方案主要有两种:1、 服务端代理模式:需要独立部署一个代理服务,该代理服务后面管理多个数据库实例,在应用中通过一个数据源与该代理服务器建立连接,由该代理去操作底层数据库,并返回相应结果。
优点是支持多语言,对业务透明,缺点是实现复杂,实现难度大,同时代理需要确保自身高可用2、 客户端代理:在连接池或数据库驱动上进行一层封装,内部与不同的数据库建立连接,并对SQL进行必要的操作,比如读写分离选择走主库还是从库,分库分表select后如何聚合结果。
优点是实现简单,天然去中心化,缺点是支持语言较少,版本升级困难现在国内比较火的中间件如sharding-proxy,国外如proxysql等,如下为一个sharding-proxy示例:服务端模式客户端模式