mysql cluster proxy_GitHub - freedaxin/maya: a mysql cluster proxy powered by node.js
maya
安装node.js
依赖node v0.8最新版,暂不支持更高的node版本,此处以0.8.7版本为例。
root安装(官方要求python2.5.2以上)
tar -zxf node-v0.8.7.tar.gz
cd node-v0.8.7
./configure --prefix=/usr/local/sinasrv2/
make
make install
在root环境变量中增加如下两项:
echo 'export NODE_PATH=/usr/local/sinasrv2:/usr/local/sinasrv2/lib/node_modules' >> ~/.bash_profile && echo 'export PATH=$PATH:/usr/local/sinasrv2/bin' >> ~/.bash_profile && source ~/.bash_profile
安装maya
root安装,进入maya主目录执行:
sh install.sh
程序安装在“/usr/local/sina_maya”并在“/etc/init.d/”下增加“/usr/local/sina_maya/bin/sina_maya“的软链用于启动服务
参数配置示例与说明
全局配置(global_conf.json):
{
#客户端连接端口
"client_port" : 15050,
#管理端口,对外输出服务状态
"management_port": 15051,
#客户端连接最大空闲时间,秒
"max_idle_time" : 800,
#允许连接的ip段,以%作为通配符,空表示不限制
"allowed_ip": [],
#拒绝的ip,优先级高于allowed_ip,配置规则与allowed_ip相同
"denied_ip": [],
#多进程配置
"cluster" : {
"workers" : 8
}
}
数据库集群配置(db_cluster.json)
{
#用于客户端与maya之间鉴权的用户名和密码
"maya_user": "mayauser",
"maya_pass": "mayapass",
#数据库用户名、密码、db
"mysql_user": "testuser",
"mysql_passwd": "testpass",
"mysql_db_name": "test",
#最大可禁用slave比例,与从库数量相乘取整,默认0,即不禁用
"max_disabled_slaves_percent": "50%",
#服务端连接空闲超时,应与mysql服务端设置相同,默认5秒
"server_conn_wait_timeout": 30,
#服务端连接池最大连接数,默认2048
"server_conn_pool_size": 2048,
#单个客户端ip最大允许连接数,默认不限制
"client_max_conn_num": 400,
#数据库连接初始化命令,多个用半角”, ”分隔
"server_init_commands": [
"SET NAMES UTF8"
],
#数据库监控参数
"monitor": {
// 检测间隔,单位:秒
"detect_interval_seconds": 5,
// 异常最大持续时间,单位:秒,超过则确认异常,执行禁用等处理
"conn_fail_max_seconds": 9,
// 从库最大延迟时间,单位:秒
"slave_max_delay_seconds": 400,
// 数据库最大连接数
"server_max_connections": 1000
},
# db group数组
"db_groups": [
{
#db group名称,唯一,不唯一时报错
"name": "group_0",
#数据库db name,优先级高于全局配置,未配置时默认使用全局
"mysql_db_name ": "test0",
"dbs": [
{
"host": "127.0.0.1",
"port": 3306,
#主从标记,1表示主库,0表示从库,默认为0
"is_master": 1
},
{
"host": "127.0.0.2",
"port": 3306,
#从库权重,默认为1
"weight": 1,
#数据库db name,优先级高于全局配置
"mysql_db_name ": “db0”,
#监控禁用开关,0表示可禁用,1表示不禁用,默认为0
“disable_monitor”: 0
},
{
"host": "127.0.0.3",
"port": 3306,
"weight": 1
}
]
},
{
"name": "group_1",
"dbs": [
{
"host": "127.0.0.5",
"port": 3306,
"is_master": 1
},
{
"host": "127.0.0.6",
"port": 3306,
"weight": 1
}
]
}
],
#虚拟表
"virtual_table": {
//用户访问的虚拟表名
"virtual_table_name": "my_table",
//虚拟表rowkey
"rowkey": "id",
//按db分区个数,1表示不按db分区,默认为1
"db_partition_num": 8,
//按table分区个数,1表示不按table分区,默认为1
"table_partition_num": 64,
//分片表分配到数据库实例的依据,”table”或”db”
"assign_db_instance_by": "table",
//分区表名称,%部分分别用db_partition_num、table_partition_num
//按指定格式填充,支持c语言格式化控制
//db或table分区数为1时不填充
"partition_table_name_pattern": "db_%.02d.my_table_%.03x",
"partitions": [
{
//分区所属db group
"db_group": "group_0",
//本db group包含的db分区范围,
//不按db分区时可省略
//中括号表示闭区间
"db_range": "[0..3]",
//本db group包含的table分区范围
//不按table分区时可省略
"table_range": "[0..31]"
},
{
"db_group": "group_1",
"db_range": "[4..7]",
"table_range": "[32..63]"
}
]
}
}
运行方法
启动:
/usr/local/sina_maya/bin/sina_maya start
停止:
/usr/local/sina_maya/bin/sina_maya stop
状态查看:
/usr/local/sina_maya/bin/sina_maya status
重载配置:
/usr/local/sina_maya/bin/sina_maya reload
重启:
/usr/local/sina_maya/bin/sina_maya restart
检查配置文件
/usr/local/sina_maya/bin/sina_maya check_conf
注意事项:
要求修改系统默认文件句柄数限制(ulimit -n),不小于20万
LICENSE
MIT LICENSE
ORIGINAL AUTHOR
Wang Daxin (freedaxin@github)
with awesome contributions from:
Han Fang
Cui Guilin
mysql cluster proxy_GitHub - freedaxin/maya: a mysql cluster proxy powered by node.js相关推荐
- nodec mysql_Node.js 连接 MySQL 并进行数据库操作 –node.js 开发指南
Node.js是一套用来编写高性能网络服务器的JavaScript工具包 通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来 ...
- Node.js 连接 MySQL 并进行数据库操作 –node.js 开发指南
Node.js是一套用来编写高性能网络服务器的JavaScript工具包 通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来 ...
- 【前端Vue+后端Node.js+MySql】部署到服务器
[前端Vue+后端Node.js+MySql]部署到服务器 文章目录 [前端Vue+后端Node.js+MySql]部署到服务器 1.买服务器 2.服务器操作 2.1.修改服务器密码,xshell登录 ...
- Node.js系列-----数据库MySQL
一.数据库MySQL 1.1. 为什么要使用数据库 任何的软件系统都需要存放大量的数据,这些数据通常是非常复杂和庞大的: 比如用户信息包括姓名.年龄.性别.地址.身份证号.出生日期等等: 比如商品信息 ...
- mysql社区版与cluster 区别_MySQL版本Enterprise/Community/Cluster等版本的区别
MySQL分为多种版本如Community.Enterprise.Cluster和Workbench等,MySQL不同版本有什么区别?LAMPLNMP分享: MySQL版本区别 ● MySQL Com ...
- 搭建mysql集群,使用Percona XtraDB Cluster搭建
Percona XtraDB Cluster提供的特性有: 1.同步复制,事务要么在所有节点提交或不提交. 2.多主复制,可以在任意节点进行写操作. 3.在从服务器上并行应用事件,真正意义上的并行复制 ...
- Mysql搭建PXC集群 - Percona XtraDB Cluster
转载来源:https://blog.csdn.net/lvshaorong/article/details/80501905 pxc集群是Percona XtraDB Cluster的缩写,是基于p ...
- MySQL数据库(九) 集群 Cluster 和性能优化
文章目录 6 MySQL 集群 Cluster 6.1 MySQL主从复制 6.1.1 主从复制架构和原理 6.1.2 实现主从复制配置 6.1.3 主从复制相关 6.1.4 实现级联复制 6.1.5 ...
- mysql集群方案PXC_【Mysql】MySQL集群方案之PXC(percona xtradb cluster)
Mysql PXC介绍 在传统的Mysql主从架构上,采用的Replaction是异步复制方式,这种方式会存在数据弱一致性的问题,数据写入主库之后因为网络及复制的延迟从库不能马上获取刚刚插入的数据,同 ...
最新文章
- python笔记2(函数 面向对象 文件编程 上下文管理器)
- 独家 | 避免神经网络过拟合的5种技术(附链接)
- Ubuntu 基本概念之美元号的意义
- 计算机基础及ms office应用,全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统...
- MongoDB,凉凉?
- leetcode 368. 最大整除子集(dp)
- Flutter 初尝:从 Java 无缝过渡,java开发面试笔试题
- 配置普通,长得丑,OPPO R11凸显OPPO创新乏力
- 一次外网打不开网站的故障总结
- 剑指offer面试题57. 和为s的两个数字(双指针)
- 推荐一门开源课程“C/C++:从基础语法到优化策略”
- 设备无法连接到你的计算机,此硬件设备未连接到计算机(代码45) | MOS86
- LINTCODE——吹气球
- 苹果白屏一直显示苹果_苹果手机出现白屏要如何修复
- kubectl源码分析之rollout history
- python科技新闻爬取
- android模拟器玩手游,电脑上玩手游PC安卓模拟器哪个好用?哪个手机模拟器最好...
- Spliterator
- 求java用人民币来转换美元,NJUPT JAVA语言 综合图形界面程序设计
- java clh队列_J.U.C|同步队列(CLH)
热门文章
- java的equals方法_Java LocalDateTime类| 带示例的equals()方法
- python 字符串 变量_检查变量是否为字符串的Python程序
- python矩阵变化_用numpy改变矩阵的形状
- 怎么查看我的php版本,怎样查看php版本
- linux控制流程,Linux - Bash - 流程控制
- C程序对整数中设置为1的位数进行计数
- centos7盘符 linux_linux_centos7_扩展磁盘空间
- mysql创建多实例,mysql 单服务器创建多实例
- filter过滤器_JavaWeb之 Filter(过滤器)
- 堆排序不稳定的例子_【译】Python中的堆排序