kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,

致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。

kingshard的性能大约是直连MySQL性能的80%以上。

一.基础功能

支持SQL读写分离(已验证)

支持多个slave,slave之间通过权值进行负载均衡。(已验证)

支持SQL黑名单机制(已验证)

分表(已验证),kingshard支持按整数的hash和range分表,并且支持按日期的分表方式,

sharding(已验证)

sharding支持以下功能:

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

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

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

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

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

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

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

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

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

kingshard的性能测试。

影响kingshard性能的因素

1.客服端并发数。并发数过小,不能充分发挥kingshard的性能.具体多大的值合适需要压测。

2.max_conns_limit。 具体设置多大还跟硬件有关,需要压测,官方建议设置为128,根据官方的压测结果获得,

当设置为大于128的时候,性能上升不明显

官方压力测试报告:

kingshard 官方文档

golang环境的安装

yaml检测

kingshard的守护进程

nohup ./bin/kingshard -config=/etc/ks.yaml &

以下是配置文件样例

####### hash  分表 #######################

---

addr: "0.0.0.0:9696"

blacklist_sql_file: /home/dengwang/software/src/github.com/flike/blacksql/blacklist

log_level: debug

log_path: /home/dengwang/software/src/github.com/flike/kingshard/log

nodes:

-

down_after_noalive: 32

master: "mysql91:3306"

max_conns_limit: 64

name: node1

password: iwjw@2015

slave: "host55:3306@2,host51:3306@2"

user: root

password: kingshard

proxy_charset: gbk

schema:

db: test

default: node1

nodes:

- node1

shard:

-

key: tid

locations:

- 4

nodes:

- node1

table: tt

type: hash

user: kingshard

### range 分表 #####################################################################

---

addr: "0.0.0.0:9696"

blacklist_sql_file: /home/dengwang/software/src/github.com/flike/blacksql/blacklist

log_level: debug

log_path: /home/dengwang/software/src/github.com/flike/kingshard/log

nodes:

-

down_after_noalive: 32

master: "mysql91:3306"

max_conns_limit: 64

name: node1

password: iwjw@2015

slave: "host55:3306@2,host51:3306@2"

user: root

password: kingshard

proxy_charset: utf8

schema:

db: test

default: node1

nodes:

- node1

shard:

-

key: tid

locations:

- 4

nodes:

- node1

table: tt

type: range

table_row_limit: 1000

user: kingshard

############# 分表 中sharding

---

addr: "0.0.0.0:9696"

blacklist_sql_file: /home/dengwang/software/src/github.com/flike/blacksql/blacklist

log_level: debug

log_path: /home/dengwang/software/src/github.com/flike/kingshard/log

nodes:

-

down_after_noalive: 32

master: "host51:3306"

max_conns_limit: 64

name: node1

password: iwjw@2015

slave: "host52:3306"

user: root

-

down_after_noalive: 32

master: "host55:3306"

max_conns_limit: 64

name: node2

password: iwjw@2015

slave: "host56:3306"

user: root

-

down_after_noalive: 32

master: "host53:3306"

max_conns_limit: 64

name: node3

password: iwjw@2015

slave: "host53:3306"

user: root

password: kingshard

proxy_charset: utf8

schema:

db: test

default: node3

nodes:

- node1

- node2

- node3

shard:

-

key: tid

locations:

- 4

- 4

nodes:

- node1

- node2

table: tt

table_row_limit: 1000

type: range

user: kingshard

mysql kingshard 扩容_mysql中间件之kingshard相关推荐

  1. mysql双倍扩容_mysql扩展性架构实践N库到2N 库的扩容,2变4、4变8

    mysql扩展性架构实践N库到2N 库的扩容,2变4.4变8 http://geek.csdn.net/news/detail/52070 58同城 沈剑 http://www.99cankao.co ...

  2. mysql atlas路由_MySQL中间件 Atlas-1.0.3 安装记录

    1.wget https://github.com/Qihoo360/Atlas/archive/1.0.3.tar.gz -o Atlas-1.0.3.tar.gz 2.tar zxvf Atlas ...

  3. mysql的扩容_MySQL的InnoDB的扩容

    innodb_data_home_dir这是InnoDB表的目录共用设置.如果没有在 my.cnf 进行设置,InnoDB 将使用MySQL的 datadir 目录为缺省目录.如果设定一个空字串,可以 ...

  4. mysql kingshard 扩容_kingshard Go语言开发MySQL数据库中间件 - 新手站长网

    kingshard是一个由Go开发高性能MySQL Proxy项目,新手站长网分享kingshard的主要功能.帮助文档.github地址.作者信息及kingshard交流群: kingshard简介 ...

  5. mysql kingshard 扩容_如何用Go打造一个高性能mysql proxy

    kingshard架构设计和功能实现 kingshard(https://github.com/flike/kingshard)开源有一段时间了,有些热心的用户发邮件来咨询kingshard的设计和实 ...

  6. 【MySQL】Gaea 数据库中间件实现 MySQL 读写分离

    声明: 以下内容是学习macro作者的文章,作者原创文章链接:你还在代码里做读写分离么,试试这个中间件吧! 下面夹杂了我自己运行过程中的错误与心得,能运行成功 传统的MySql读写分离方案是通过在代码 ...

  7. mysql fa连接池中间件_小米开源数据库中间件gaea

    简介 Gaea是小米商城/系统组研发的基于 mysql 协议的 数据库 中间件,目前在小米商城大陆和海外得到广泛使用,包括订单.社区.活动等多个业务.Gaea支持分库分表.sql路由.读写分离.连接池 ...

  8. Gaea:小米基于 MySQL 协议的数据库中间件

    项目介绍 Gaea 是小米商城/系统组研发的基于 MySQL 协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单.社区.活动等多个业务. Gaea 支持分库分表.sql 路由.读写分离 ...

  9. 【分布式mysql分库分表中间件sharding】

    分布式mysql分库分表中间件,sharding领域的一站式解决方案.具备丰富.灵活的路由算法支持,能够方便DBA实现库的水平扩容和降低数据迁移成本.shark采用应用集成架构,放弃通用性,只为换取更 ...

最新文章

  1. 当物联网实时工作时,城市才是“智能”的
  2. Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount
  3. 圆环自带动画进度条ColorfulRingProgressView
  4. 嵌入式 linux 启动脚本 编写,[9构建嵌入式linux系统项目-启动脚本的编写.ppt
  5. 小程序点击事件改变样式(普通js鼠标点击事件)
  6. discuz 不能上传头像提示can not write to the data/tmp folder
  7. 大佬教你如何写出更好的CSS,分享web前端资料
  8. python程序打包成exe(使用pyinstaller)
  9. 分贝噪音测试软件文件存储,手机分贝噪音测试软件
  10. Drupal主题制作流程
  11. iphone换android手机铃声,iPhone6s怎么更换手机铃声 iPhone苹果6s更换铃声教程
  12. Flash 第二篇 AS影片剪辑
  13. 宇枫资本如何挑选靠谱理财平台
  14. 网页头部的声明怎么写?
  15. 手机应用游戏开发死机现场之一
  16. 36岁的it一线运维是不是废了_35以上IT人咋活?给你三个真实的案例
  17. 夕阳红旅游团第四周报告
  18. 【专业的项目管理工具】Curio for Mac 13.0
  19. MacAppStore的魅力4点
  20. windows通过Sakura Frp内网穿透实现远程控制

热门文章

  1. 今天收到了学校给出的退学警告
  2. 关于nginx rewrtie的四种flag
  3. Office365 用户同步排错思路
  4. hbase shell命令扩展(转自http://www.netfoucs.com/cuirong1986/article/details/7986900)
  5. JS正则表达式元字符
  6. Flex/Flash Builder里实用但被忽略的编译参数
  7. final ListURL jars = new LinkedListURL();
  8. 如何正确的选择适合自己的WEB报表工具
  9. IE自动在后台运行,不知道是什么病毒?
  10. python3 文件 复制、重命名、移动、删除