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日志及慢日志输出
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/127070.html