kingshard

Go 开发的 MySQL Proxy 项目
授权协议 MIT
开发语言 Google Go
所属分类 数据库相关、 数据库调整和优化
软件类型 开源软件
地区 国产
投 递 者 葛景龙
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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(支持IP 段)。
  • 支持字符集设置。
  • 支持last_insert_id功能。
  • 支持热加载配置文件,动态修改kingshard配置项(具体参考管理端命令)。
  • 支持以Web API调用的方式管理kingshard。
  • 支持多用户模式,不同用户之间的表是权限隔离的,互补感知。

2. sharding功能

  • 支持按整数的hash和range分表方式。
  • 支持按年、月、日维度的时间分表方式。
  • 支持跨节点分表,子表可以分布在不同的节点。
  • 支持跨节点的count,sum,max和min等聚合函数。
  • 支持单个分表的join操作,即支持分表和另一张不分表的join操作。
  • 支持跨节点的order by,group by,limit等操作。
  • 支持将sql发送到特定的节点执行。
  • 支持在单个节点上执行事务,不支持跨多节点的分布式事务。
  • 支持非事务方式更新(insert,delete,update,replace)多个node上的子表。
  • kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上, 致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。  kingshard的性能大约是直连MySQL性能的80%以上。 一.基础功能 支持SQL读写分离(已验证) 支持多个slave,slave之间通过权值进行负载均衡。(已验证)

  • 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/

  • kingshard 是一个由Go开发高性能MySQL Proxy项目. 功能简介: 读写分离 分库分表 数据库扩容 具体功能查看官方文档,这次主要是自己动手搭建基于Kingshard的MySQL集群。 环境 Docker Go CentOS 7 过程 安装Go语言 yum install golang -y 安装Kingshard git clone https://github.com/flik

  • Kingshard mysql中间件 实现功能: 可以实现mysql的分表,以及分表之后的增加,删除,修改,查询等mysql的一系列操作。可以扩展mysql的主从架构,方便mysql架构的分布式扩展。 实验测试架构为在两个MASTER上面安装了keepalived和kingshard中间件,两个master之间互为主从,两个master都有一个slave。实现mysql和kingshard的高可用

  • kingshard简介 kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。 详情查看https://github.com/flike/kingshard 基于docker构建主从数据库 1. 在自己喜欢的目录创建下mysql文件夹

  • kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。 kingshard的性能是直连MySQL性能的80%以上。 安装kingshard 1. 先安装Go语言环境(Go版本1.3以上) 2. git clone https://gi

  • kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。 kingshard的性能是直连MySQL性能的80%以上。 安装kingshard1. 先安装Go语言环境(Go版本1.3以上) 2. git clone https://git

  • https://github.com/flike/kingshard/blob/master/doc/KingDoc/admin_command_introduce.md mysql -h 127.0.0.1  -P9696 -uroot  -proot mysql> admin server(opt,k,v) values('show','proxy','config'); +---------

  • Dockerfile $ vim Dockfile FROM golang:1.15-alpine3.12 as builder ARG goproxy COPY . /go/src/github.com/flike/kingshard RUN cd /go/src/github.com/flike/kingshard \ && GO111MODULE=off GOPROXY=$gopr

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

 相关资料
  • (1). 软件开发过程的划分 本规定对一个完整的开发过程按“软件过程改进方法和规范”把产品生命周期划分为 6 个阶段: 产品概念阶段(记为 PH0) 产品定义阶段(记为 PH1) 产品开发阶段(记为 PH2) 产品测试阶段(记为 PH3) 用户验收阶段(记为 PH4) 产品维护阶段(记为 PH5) 软件项目的过程有三大类: 项目管理过程、项目研发过程和机构支持过程。 而这三类过程可以细分为19个主

  • G-framework是项目开发目录,这个目录的名称是可以修改的,比如修改为:App1 Cache/ 这个目录为项目缓存目录 Cache/Datacache/ 数据文件缓存 Cache/HtmlCache/ 静态html页面缓存 cache/template/ 模板文件缓存 Common/Common.php 项目函数 Config/Config.php 项目配置 Config/Home.Conf

  • 此文档的目的,就是为了提高技术团队的凝聚力、一致性和生产效率。

  • 本文向大家介绍推荐几个开源的微信开发项目,包括了推荐几个开源的微信开发项目的使用技巧和注意事项,需要的朋友参考一下  下面向大家介绍的是微信开发项目里使用的3款基于PHP的开发框架,相信一定对你的开发工作有所帮助。   1. Wechat-PHP-SDK   微信公众平台 PHP 开发包,细化各项接口操作,支持链式调用。   Github托管地址:dodgepudding/wechat-php-s

  • 注意事项 禁止使用$_GET、$_POST、$GLOBALS、$_SERVER、$_FILES、$_COOKIE、$_SESSION、$_REQUEST、$_ENV等超全局变量 谨慎使用global、static关键字 不要在代码非协程环境中执行sleep以及其他睡眠函数,这样会导致整个进程阻塞. exit/die 是危险的,会导致 worker 进程退出 不要在业务代码中使用 swoole 不支

  • 本文向大家介绍Android开发之关于项目,包括了Android开发之关于项目的使用技巧和注意事项,需要的朋友参考一下 本系列文章会根据项目的进度进行相关介绍,其会分为多个模块,每个模块互不依赖,各个模块都是单独的学习内容,如sqlite学习模块,contacts联系人模块等。 新建项目 相信大部分童鞋都可以自定义项目了,那么在此,我简单介绍下android studio新建项目的过程。 最终,a

  • 这里会简单介绍下基于 Django 框架开发 Web 项目中要遵守的一些基本开发规范。 1. Django 开发规范 对于 Django 的开发规范,我个人的总结如下: 正式开始基于 Django 的 Web 服务项目之前,需要完成相应的需求和接口设计, 而不要冒冒然直接开写; 工程需要有完整的文档介绍 、服务部署脚本(start、stop) 等等,让这个项目至少看起来高大上和完整; 完善的版本迭

  • 初始化环境 完整的代码在这 https://github.com/MiYogurt/todo-api 通过命令 mkdir todo 创建我们的文件夹 通过命令 tsc --init 初始化 typescript 环境。(前提你已经全局安装typescript) 通过命令 npm init -y 初始化 package.json,保存项目所有依赖项。 Tip:安装 TypeScript 可以通过