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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸿蒙构架谁提供的,科普丨关于“鸿蒙”,不
- 下一篇: springcloud 文件服务器,Sp