JAVA-mysql读写分离插件介绍
kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。 kingshard的性能是直连MySQL性能的80%以上。
github地址:https://github.com/flike/kingshard/blob/master/README_ZH.md
Cobar
是提供关系型数据库(MySQL)分布式服务的中间件,它可以让传统的数据库得到良好的线性扩展,并看上去还是一个数据库,对应用保持透明。
- 产品在阿里巴巴稳定运行3年以上。
- 接管了3000+个MySQL数据库的schema。
- 集群日处理在线SQL请求50亿次以上。
- 集群日处理在线数据流量TB级别以上。
github地址:https://github.com/alibaba/cobar
Mycat
2013年阿里的Cobar在社区使用过程中发现存在一些比较严重的问题,及其使用限制,经过Mycat发起人第一次改良,第一代改良版——Mycat诞生。 Mycat开源以后,一些Cobar的用户参与了Mycat的开发,最终Mycat发展成为一个由众多软件公司的实力派架构师和资深开发人员维护的社区型开源软件。
github地址:https://github.com/MyCATApache/MyCAT-Serverj360-datasource
构建
- Java 1.7+
- Maven 3.2+
- Spring 4.1.3
1.0功能介绍
- 当前版本说明
- 分表:基于配置的count通过loadbalance算法映射到对应的table_0 table_1 ... table_{count}
- 分库:多数据源切换,通过loadbalance算法映射到对应的datasource
- 读写分离:基于配置的write数据源、read数据库类型,匹配到对应的数据源类型
- 多服务器轮训:基于lb算法中的RoundRobin算法轮训多个数据源分流,此处和分库最大的区别在于服务器的高可用分流
- jdbc框架测试:ibatis
- 数据库:Mysql
2.0升级说明
- 后续版本升级方向
- 自定义负载均衡算法,更新权重,将权重数据缓存计算
- 更细每次都要去计算tablehash和databasehash的效率,将配置统一缓存使用缓存计算
- 新增JavaConfig方式,新增spring boot集成和动态数据更新
- 新增多重jdbc、orm框架支持 mybatis、hibernate、spring jdbc等