Kingshard是一个由Go语言开发的高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作,能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容,kingshard的性能大约是直连MySQL性能的80%以上,而且自从kingshard开源以来,经过不断地迭代开发,目前功能较为完善,稳定性也有了很大的提升。Kingshard的架构如下:
主要功能:
- 读写分离
- 跨节点分表
- 支持透明的MySQL连接池,不必每次新建连接
- 支持客户端IP访问控制
- 平滑上线DB或下线DB,前端应用无感知
- 支持多个slave,slave之间通过权值进行负载均衡
- 支持强制读主库
- 支持将sql发送到特定的node
- 支持在单个node上执行事务,不支持跨多个node执行事务
- 支持跨node的count,sum,max和min等函数
- 支持单个分表的join操作,即支持分表和另一张不分表的join操作
- 支持order by,limit等操作
- 支持主流语言(java,php,python,C/C++,Go)SDK的mysql的prepare特性
- 支持到后端DB的最大连接数限制
- 支持SQL日志及慢日志输出
本文转载自:http://www.linuxprobe.com/open-source-database-middleware-kingshard/
免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/