Go 开发 MySQL Proxy 项目 kingshard

MIT
Google Go 查看源码»
跨平台
2015-07-23
flikecn

[![Build Status](https://travis-ci.org/flike/kingshard.svg?branch=master)](https://travis-ci.org/flike/kingshard)

# kingshard简介

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

## 主要功能:

### 1. 基础功能

- 支持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](https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_install_document.md)

[2.如何利用一个数据库中间件扩展MySQL集群——kingshard使用指南](https://github.com/flike/kingshard/blob/master/doc/KingDoc/how_to_use_kingshard.md)

[3.kingshard sharding介绍](https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_sharding_introduce.md)

[4.kingshard按时间分表功能介绍](https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_date_sharding.md)

[5.kingshard 快速入门](https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_quick_try.md)

[6.管理端命令介绍](https://github.com/flike/kingshard/blob/master/doc/KingDoc/admin_command_introduce.md)

[7.kingshard SQL黑名单功能介绍](https://github.com/flike/kingshard/blob/master/doc/KingDoc/sql_blacklist_introduce.md)

[8.kingshard的FAQ](https://github.com/flike/kingshard/blob/master/doc/KingDoc/function_FAQ.md)

### kingshard架构与设计

[1.kingshard架构设计和功能实现](https://github.com/flike/kingshard/blob/master/doc/KingDoc/architecture_of_kingshard_CN.md)

[2.kingshard性能优化之网络篇](https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_performance_profiling.md)

[3.kingshard性能测试报告](https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_performance_test.md)

## kingshard用户列表

https://github.com/flike/kingshard/issues/148

## 反馈
kingshard开源以来,经过不断地迭代开发,功能较为完善,稳定性有较大提升。 **目前已有上十家公司在生产环境使用kingshard作为MySQL代理。** 如果您在使用kingshard的过程中发现BUG或者有新的功能需求,非常欢迎您发邮件至hiflike#gmail.com与作者取得联系,或者加入QQ群(147926796)交流。


的码云指数为
超过 的项目
加载中

评论(3)

大yi巴狼
大yi巴狼
忍不住上来https://gitee.com/sgoby/myhub #myhub# 抄袭 #kingshard# 太明显了,作者还是不要秀智商了
吐槽的达达仔
吐槽的达达仔
其实MYSQL中间件,用哪个语言并不重要吧。。 #kingshard#
OpenIoT
OpenIoT
y有没有ms sqlserver的proxy? #kingshard#
星宿

暂无资讯

11
回答
【开源访谈】Kingshard 作者陈非访谈实录

【项目简介】 Kingshard 是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分...

2015/08/03 14:31

没有更多内容

加载失败,请刷新页面

没有更多内容

一个高性能的MySQL proxy(kingshard)的性能测试报告

之前的几篇blog,给大家分享的都是kingshard(https://github.com/flike/kingshard )的架构与设计。其实很多人对kingshard的性能也非常关心。最近热心的网友[bigpyer](https://github.com/bi...

2015/11/22 18:42
115
0
如何利用一个数据库中间件扩展MySQL集群——kingshard使用指南

上次写了一篇有关kingshard架构设计的文章,得到了很多热心网友的关注。其中有网友提到:希望再写一篇关于如何利用kingshard搭建一个可扩展的MySQL集群的文档。利用假期时间,写了一篇kingsha...

2015/09/05 20:17
3.3K
16
KingShard使用

对于kingshard的功能,在git中可以看到明确的功能说明 主要功能: 1. 基础功能 支持SQL读写分离。 支持透明的MySQL连接池,不必每次新建连接。 支持平滑上线DB或下线DB,前端应用无感知。 支...

2018/07/20 14:30
67
0
如何用Go语言打造一个高性能MySQL Proxy

kingshard开源有一段时间了,有些热心的用户发邮件来咨询kingshard的设计和实现问题。于是周末抽空写了一篇介绍kingshard架构和功能实现的文章,希望通过本文能够让用户对kingshard有更深的了...

2015/08/16 17:11
8.5K
23
kingshard最佳实践(一)

一、kingshard简介 kingshard是一个Go开发的mysql中间件,可以实现读写分离、分库分表、连接池等功能 1.1 kingshard工作流程 kingshard采用Go开发,充分地利用了Go语言的并发特性。Go语言在并...

2018/05/04 18:44
927
0
Go语言项目(kingshard)性能优化实例剖析

最近kingshard的功能开发节奏慢了许多。一方面是工作确实比较忙,另一方面是我觉得kingshard的功能已经比较完善了,下一步的开发重点应该是性能优化。毕竟作为一个MySQL proxy,如果转发SQL的...

2015/11/02 20:49
3.5K
17
kingshard最佳实践(二)

上篇主要介绍了kingshard的工作流程、搭建及部分功能测试,今天来测试一下kingshard对sharding的支持 一、kingshard的sharding介绍 1.1 kingshard的sharding优势 现在开源的MySQL Proxy已经有...

2018/05/07 17:30
267
0
GO语言Win7环境搭建

GO语言Win7环境搭建过程说明,及如何使用LiteIDE开发具体项目说明

2015/09/22 01:16
73
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部