数据优化——分库分表(一)概念及运用场景-详解
数据优化——分库分表(二)策略讲解
数据优化——分库分表(四)高级策略
1 中间件的类型
1.1 PROXY模式
相当于把中间件作为一个独立的服务了,它将接收到的SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。
1.2 CLIENT模式
中间件在Driver或者连接池的基础之上,增加了一层封装。我们使用时,以Java开发为例,需要先引入一个jar包。中间件接收持久层产生的sql,同样对sql进行分析等操作,然后才落实到具体的库上。
1.3 区别
- proxy模式需要部署多节点服务,增加了网络IO,影响到了性能,但是对代码基本没有入侵性,方便易用。
- client模式与其相反,不影响到性能,但是对代码有入侵性,需要管理配置。
2 中间件的简单介绍
中间件世面上很多,按上面的规则做了一下简单的分类和介绍
2.1 proxy模式
- mysql-proxy
mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。很多中间件都基于它进行了魔改。
- cobar(Alibaba)
Cobar 是由 Alibaba 开源的 MySQL 分布式处理中间件,它可以在分布式的环境下看上去像传统数据库一样提供海量数据服务。不过最近的一次维护也是两年前的事了。