mysql中间件之kingshard

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的时候,性能上升不明显

官方压力测试报告:

https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_performance_test.md

kingshard 官方文档

https://github.com/flike/kingshard/blob/master/README_ZH.md

golang环境的安装

http://www.linuxidc.com/Linux/2015-02/113159.htm

yaml检测

http://www.yamllint.com/

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: [email protected]

slave: "host55:[email protected],host51:[email protected]"

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: [email protected]

slave: "host55:[email protected],host51:[email protected]"

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: [email protected]

slave: "host52:3306"

user: root

-

down_after_noalive: 32

master: "host55:3306"

max_conns_limit: 64

name: node2

password: [email protected]

slave: "host56:3306"

user: root

-

down_after_noalive: 32

master: "host53:3306"

max_conns_limit: 64

name: node3

password: [email protected]

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

时间: 2024-12-17 21:34:34

mysql中间件之kingshard的相关文章

MySQL中间件之MyCat

MySQL中间件之MyCat 一.MyCat基础概念 1.什么是MyCat 一个彻底开源的,面向企业应用开发的大数据库集群支持事务.ACID.可以替代MySQL的加强版数据库一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群一个融合内存缓存技术.NoSQL技术.HDFS大数据的新型SQL Server结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品一个新颖的数据库中间件产品 2.为什么使用MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到

mysql 中间件研究 (Atlas,cobar,TDDL)

mysql中间件研究(Atlas,cobar,TDDL) mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧. Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它是在mysql-proxy 0.8.2版本的基础

mysql 中间件

http://f.dataguru.cn/thread-543718-1-1.html mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧.AtlasAtlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它是在mysql-pro

mysql中间件研究(Atlas,cobar,TDDL)[转载]

mysql中间件研究(Atlas,cobar,TDDL) mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧. Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它是在mysql-proxy 0.8.2版本的基础

mysql中间件研究(Atlas,cobar,TDDL)【转】

mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧. Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性.360内部使用

mysql中间件研究(Atlas,cobar,TDDL)

mysql中间件研究(Atlas,cobar,TDDL) mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧. Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它是在mysql-proxy 0.8.2版本的基础

MySQL中间件之ProxySQL(1):简介和安装

1.ProxySQL简介 之前的文章里,介绍了一个MySQL的中间件:MySQL Router.详细内容参见:MySQL Router实现MySQL的读写分离. 这里准备用一个系列来详细介绍一个能实实在在用在生产环境的MySQL中间件:ProxySQL.它有两个版本:官方版和percona版,percona版是在官方版的基础上修改的,添加了几个比较实用的工具.在我这个系列文章中,我使用的是官方版. 官方站点:官方站点 官方github:官方github 官方手册:官方手册 percona Pro

MySQL中间件性能测试 I

本文根据黄炎在2018年7月7日[MySQL技术沙龙 · 成都站]现场演讲内容整理而成. 黄炎 爱可生研发总监,深入钻研分布式数据库相关技术,擅长业界相关MySQL中间件产品和开发,以及分布式中间件在企业内部的应用实践. MySQL中间件性能测试 I 摘要:我今天代表我的团队向大家来介绍一下MySQL中间件性能的测试,为大家带来一些不太一样的故事,包括我们在做性能测试的时候一些不太一样的视角. 分享大纲: 1.性能测试的常见的(错误)方法 * 3 2.性能测试的一些(我们用的)方法 * 2 3.

mysql中间件kingshard安装

1,安装go语言环境,(Go版本要求1.3以上) wget https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz tar -C /usr/local/ -xzf go1.6.3.linux-amd64.tar.gz 配置环境变量,在/etc/profile中加入下列设置: export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH 创建工作区/usr/local/g