设为首页 收藏本站
查看: 1045|回复: 0

[经验分享] mysql中间件之kingshard

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-23 08:51:41 | 显示全部楼层 |阅读模式
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/kingsha ... performance_test.md




kingshard 官方文档
https://github.com/flike/kingshard/blob/master/README_ZH.md


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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-194505-1-1.html 上篇帖子: MySQL自动化部署(二进制) 下篇帖子: MySQL忘记密码怎么办 中间件 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表