日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql cluster proxy_GitHub - freedaxin/maya: a mysql cluster proxy powered by node.js

發布時間:2025/3/12 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。