天天看点

kingshard —— Go 开发的 MySQL Proxy 项目

kingshard简介

kingshard是一个由go开发高性能mysql proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化mysql分库分表操作;能够让dba通过kingshard轻松平滑地实现mysql数据库扩容。 kingshard的性能是直连mysql性能的80%以上。

主要功能:

基础功能

支持sql读写分离。

支持透明的mysql连接池,不必每次新建连接。

支持平滑上线db或下线db,前端应用无感知。

支持多个slave,slave之间通过权值进行负载均衡。

支持强制读主库。

支持主流语言(java,php,python,c/c++,go)sdk的mysql的prepare特性。

支持到后端db的最大连接数限制。

支持sql日志及慢日志输出。

支持sql黑名单机制。

支持客户端ip访问白名单机制,只有白名单中的ip才能访问kingshard。

支持字符集设置。

支持last_insert_id功能。

支持动态修改kingshard部分配置项(具体参考管理端命令)。

2 . sharding功能

支持按整数的hash和range分表方式。

支持按年、月、日维度的时间分表方式。

支持跨节点分表,子表可以分布在不同的节点。

支持跨节点的count,sum,max和min等聚合函数。

支持单个分表的join操作,即支持分表和另一张不分表的join操作。

支持跨节点的order by,group by,limit等操作。

支持将sql发送到特定的节点执行。

支持在单个节点上执行事务,不支持跨多节点的分布式事务。

支持非事务方式更新(insert,delete,update,replace)多个node上的子表。

kinshard文档

kingshard安装和使用

[1.安装kingshard]

[2.如何利用一个数据库中间件扩展mysql集群——kingshard使用指南]

[3.kingshard sharding介绍]

[4.kingshard按时间分表功能介绍]

[5.kingshard 快速入门]

[6.管理端命令介绍]

[7.kingshard sql黑名单功能介绍]

[8.kingshard的faq]

kingshard架构与设计

[1.kingshard架构设计和功能实现]

[2.kingshard性能优化之网络篇]

[3.kingshard性能测试报告]

反馈

kingshard开源以来,经过不断地迭代开发,功能较为完善,稳定性有较大提升。目前已有上十家公司在生产环境使用kingshard作为mysql代理。