版本號(hào) | 修訂日期 | 修訂人 | 內(nèi)容 |
---|---|---|---|
0.0.1.0 | 2018-01-28 | 厲華 | 創(chuàng)建 |
- 1. 安裝部署
- 2. 可執(zhí)行程序參考
- 3. 腳本參考
1. 安裝部署
IBP集群配置對(duì)象實(shí)例層次如下:
- 多個(gè)通訊節(jié)點(diǎn)主機(jī)組成一個(gè)通訊節(jié)點(diǎn),多個(gè)通訊節(jié)點(diǎn)組成IBP節(jié)點(diǎn)集群凑队。通訊節(jié)點(diǎn)主機(jī)是最小運(yùn)行實(shí)例则果,通訊節(jié)點(diǎn)是自動(dòng)推導(dǎo)下發(fā)配置和應(yīng)用包、交易負(fù)載均衡的最小單位漩氨。通訊節(jié)點(diǎn)是集群管理的最小啟停單位西壮。
- 交易碼信息包含了交易中文描述、交易應(yīng)用包(動(dòng)態(tài)庫(kù))文件名叫惊、客戶端通訊超時(shí)款青、服務(wù)端應(yīng)用處理超時(shí)(可選)、默認(rèn)通訊節(jié)點(diǎn)名霍狰。
- 項(xiàng)目信息其實(shí)是客戶端通訊節(jié)點(diǎn)集抡草、服務(wù)端通訊節(jié)點(diǎn)集饰及、交易碼集的關(guān)系信息。
- 用戶自定義KV配置下掛在通訊節(jié)點(diǎn)下康震。
(以下均為手工安裝部署流程燎含,正在研發(fā)一鍵自動(dòng)安裝通訊節(jié)點(diǎn)伸縮集群,但基本流程不變)
1.1. 初次部署
規(guī)劃示例:
| 節(jié)點(diǎn)類型 | 節(jié)點(diǎn)名 | 節(jié)點(diǎn)說明 | 用戶名 | 地址 |
| --- | --- | --- |
| 日志節(jié)點(diǎn) | IBLOG | 日志歸集 | iblog | 158.1.0.55:10101 |
| 注冊(cè)節(jié)點(diǎn) | IBMS | 注冊(cè)中心 | ibms | 158.1.0.54:16001 |
| 通訊節(jié)點(diǎn) | ECIF | ECIF業(yè)務(wù)平臺(tái) | ecif | 158.1.0.56:18001 |
| 通訊節(jié)點(diǎn) | ECIF | ECIF業(yè)務(wù)平臺(tái) | ecif | 158.1.0.57:18001 |
| 通訊節(jié)點(diǎn) | ECIF | ECIF業(yè)務(wù)平臺(tái) | ecif | 158.1.0.58:18001 |
| 通訊節(jié)點(diǎn) | CORE | 核心系統(tǒng) | herons | 66.88.1.10:10601 |
1.1.1. 部署日志歸集節(jié)點(diǎn)
1.1.1.1. 初始化環(huán)境
創(chuàng)建用戶(需要root權(quán)限)
# useradd iblog
# passwd iblog
進(jìn)入用戶
# su - iblog
$
上傳logpipe安裝包后解開
$ tar xvzf ibp-Linux-0.0.24.1-bin.tar.gz
$ tar xvzf logpipe-0.16.1-bin.tar.gz
改名腿短、引用屏箍、重載用戶登錄配置
$ mv .bash_profile .profile
$ echo ". ~/shbin/ibp_profile.add" >>.profile
$ . ~/.profile
1.1.1.2. 安裝日志歸集端
編寫日志歸集端配置文件
$ cat $HOME/etc/logpipe.conf
{
"log" :
{
"log_file" : "/tmp/iblog_logpipe_log.log" ,
"log_level" : "WARN"
} ,
"inputs" :
[
{ "plugin":"so/logpipe-input-tcp.so" , "ip":"158.1.0.55" , "port":10101 }
] ,
"outputs" :
[
{ "plugin":"so/logpipe-output-file.so" , "path":"/home/iblog/log" , "rotate_size":10000000 }
]
}
啟動(dòng)日志歸集端
$ logpipe -f $HOME/etc/logpipe.conf
其它節(jié)點(diǎn)采集端發(fā)來的日志都會(huì)以相同文件名落到/home/iblog/log/
logpipe
由一個(gè)管理進(jìn)程和一個(gè)工作進(jìn)程組成,想要停止時(shí)只要向管理進(jìn)程發(fā)送TERM信號(hào)即可橘忱。
設(shè)置定時(shí)清理任務(wù)
周期性日志文件轉(zhuǎn)檔任務(wù)赴魁,每天23點(diǎn)55分執(zhí)行一次:
55 23 * * * . $HOME/shbin/baklog >/tmp/iblog_baklog.stdout 2>&1
周期性清理日志轉(zhuǎn)檔包任務(wù),每天3點(diǎn)0分執(zhí)行一次:
0 3 * * * . $HOME/shbin/rmlogbak 30 >/tmp/iblog_rmlogbak.stdout 2>&1
1.1.2. 部署注冊(cè)節(jié)點(diǎn)
1.1.2.1. 初始化環(huán)境
創(chuàng)建用戶(需要root權(quán)限)
# useradd ibms
# passwd ibms
進(jìn)入用戶
# su - ibms
$
上傳安裝包后解開
$ tar xvzf ibp-Linux-0.0.24.1-bin.tar.gz
$ tar xvzf logpipe-0.16.1-bin.tar.gz
改名钝诚、引用颖御、重載用戶登錄配置
$ mv .bash_profile .profile
$ echo ". ~/shbin/ibp_profile.add" >>.profile
$ . ~/.profile
初始化ibms環(huán)境(檢查創(chuàng)建目錄、自動(dòng)生成缺省配置文件)
$ ibms -a init
mkdir /home/ibms/etc ok
/home/ibms/etc/ibms.conf created
/home/ibms/etc/ibp_nodes.conf created
/home/ibms/etc/ibp_apps.conf created
/home/ibms/etc/ibp_projects.conf created
mkdir /home/ibms/log ok
mkdir /home/ibms/file ok
mkdir /home/ibms/so ok , don't forget copy .so files in it
mkdir /home/ibms/keys ok , don't forget generate keys
$ l
drwxrwxr-x 2 ibms ibms 4096 04-05 15:56 bin
drwxr-xr-x 2 ibms ibms 4096 04-05 15:54 etc
drwxrwxr-x 2 ibms ibms 4096 04-05 15:56 exsh
drwxr-xr-x 2 ibms ibms 4096 04-05 15:32 file
-rw-rw-r-- 1 ibms ibms 1001633 04-05 15:56 ibp-Linux-0.0.24.1-bin.tar.gz
drwxr-xr-x 2 ibms ibms 4096 04-05 15:32 keys
drwxrwxr-x 2 ibms ibms 4096 04-05 15:56 lib
drwxr-xr-x 2 ibms ibms 4096 04-05 16:00 log
drwxrwxr-x 2 ibms ibms 4096 04-05 15:56 shbin
drwxr-xr-x 2 ibms ibms 4096 04-05 15:32 so
$ l etc/
-rw-rw-r-- 1 ibms ibms 605 04-05 15:32 ibms.conf
-rw-rw-r-- 1 ibms ibms 167 04-05 15:32 ibp_apps.conf
-rw-rw-r-- 1 ibms ibms 129 04-05 15:32 ibp_nodes.conf
-rw-rw-r-- 1 ibms ibms 146 04-05 15:32 ibp_projects.conf
ibms.conf
是注冊(cè)中心主配置文件凝颇,ibp_nods.conf
是集群配置通訊節(jié)點(diǎn)配置文件潘拱,ibp_apps.conf
是集群配置交易碼配置文件,ibp_projects.conf
是集群配置項(xiàng)目信息配置文件祈噪,以上配置文件格式均為JSON泽铛。
1.1.2.2. 安裝日志采集端
編寫日志采集端配置文件
$ cat $HOME/etc/logpipe.conf
{
"log" :
{
"log_file" : "/tmp/ibms_logpipe_log.log" ,
"log_level" : "WARN"
} ,
"inputs" :
[
{ "plugin":"so/logpipe-input-file.so" , "path":"/home/ecif/log" , "rotate_size":10000000 , "exec_after_rotating":"rm -f ${LOGPIPE_ROTATING_NEW_FILENAME}" }
] ,
"outputs" :
[
{ "plugin":"so/logpipe-output-tcp.so" , "ip":"158.1.0.55","port":10101 }
]
}
啟動(dòng)日志采集端
$ logpipe -f $HOME/etc/logpipe.conf
/home/iblog/log/
里新增日志或現(xiàn)存日志追加內(nèi)容會(huì)被異步實(shí)時(shí)采集傳輸?shù)饺罩練w集端,日志文件到達(dá)10MB會(huì)被清除辑鲤。
logpipe
由一個(gè)管理進(jìn)程和一個(gè)工作進(jìn)程組成,想要停止時(shí)只要向管理進(jìn)程發(fā)送TERM信號(hào)即可杠茬。
設(shè)置定時(shí)清理任務(wù)
周期性日志文件轉(zhuǎn)檔任務(wù)月褥,每天23點(diǎn)55分執(zhí)行一次:
55 23 * * * . $HOME/shbin/baklog >/tmp/ibms_baklog.stdout 2>&1
周期性清理日志轉(zhuǎn)檔包任務(wù),每天3點(diǎn)0分執(zhí)行一次:
0 3 * * * . $HOME/shbin/rmlogbak 30 >/tmp/ibms_rmlogbak.stdout 2>&1
1.1.2.3. 安裝注冊(cè)中心
修改注冊(cè)中心配置文件
{
"ibms" :
{
"server" : // 服務(wù)器配置
{
"ip" : "158.1.0.54" ,
"port" : 16001
} ,
"config" : // IBP集群配置文件名
{
"nodes_conf" : "ibp_nodes.conf" , // 通訊節(jié)點(diǎn)信息配置文件名
"apps_conf" : "ibp_apps.conf" , // 交易碼信息配置文件名
"projects_conf" : "ibp_projects.conf" // 項(xiàng)目信息配置文件名
} ,
"security" : // 安全機(jī)制配置
{
"old_key_disable_elapse" : 120 , // 老密鑰失效時(shí)間(單位:秒)
"new_key_enable_elapse" : 60 // 新密鑰生效時(shí)間(單位:秒)
} ,
"misc" : // 雜項(xiàng)配置
{
"auto_download_bin_enable" : 0 , // 是否啟用立即自動(dòng)推導(dǎo)下發(fā)應(yīng)用包
"second_config_dump" : "158.1.0.55:26001" // 冗余落地配置副本的ibcmd地址
} ,
"log" : // ibms日志配置
{
"iblog_server" : "" , // 該選項(xiàng)已棄用瓢喉,改用logpipe實(shí)現(xiàn)大小轉(zhuǎn)檔和異步實(shí)時(shí)日志收集
"event_output" : "file::log/event.log" , // 事件日志文件名
"main_output" : "file::log/ibms_main.log" , // 啟動(dòng)初始化日志文件名
"main_loglevel" : DEBUG , // 啟動(dòng)初始化日志等級(jí)
"monitor_output" : "file::log/ibms_monitor.log" , // 注冊(cè)中心父進(jìn)程日志文件名
"monitor_loglevel" : INFO , // 注冊(cè)中心父進(jìn)程日志等級(jí)
"worker_output" : "file::log/ibms_worker.log" , // 注冊(cè)中心子進(jìn)程日志文件名
"worker_loglevel" : INFO // 注冊(cè)中心子進(jìn)程日志等級(jí)
}
}
}
啟動(dòng)注冊(cè)中心
$ ibms.sh start
ibms start ok
ibms 6745 1 0 15:58 pts/15 00:00:00 ibms -f ibms.conf -a start
ibms 6746 6745 0 15:58 pts/15 00:00:00 ibms -f ibms.conf -a start
注冊(cè)中心由一個(gè)管理(父)進(jìn)程和一個(gè)工作進(jìn)程(子)組成宁赤,管理進(jìn)程日志文件是log/ibms_monitor.log
,工作進(jìn)程日志文件是log/ibms_worker.log
栓票。
想要停止注冊(cè)中心决左,只要向管理進(jìn)程發(fā)送TERM信號(hào)即可,也可用單實(shí)例管理腳本ibms.sh stop
走贪。
1.1.3. 部署通訊節(jié)點(diǎn)
(以ecif@158.1.0.56:18001為例)
1.1.3.1. 初始化環(huán)境
創(chuàng)建用戶(需要root權(quán)限)
# useradd ecif
# passwd ecif
進(jìn)入用戶
# su - ecif
$
上傳安裝包后解開
$ tar xvzf ibp-Linux-0.0.24.1-bin.tar.gz
$ tar xvzf logpipe-0.16.1-bin.tar.gz
改名佛猛、引用、重載用戶登錄配置
$ mv .bash_profile .profile
$ echo ". ~/shbin/ibp_profile.add" >>.profile
$ . ~/.profile
初始化ibma環(huán)境(檢查創(chuàng)建目錄坠狡、自動(dòng)生成缺省配置文件)
$ ibma -a init
mkdir /home/ecif/etc ok
/home/ecif/etc/ibma.conf created
mkdir /home/ecif/log ok
mkdir /home/ecif/file ok
mkdir /home/ecif/so ok , don't forget copy .so files in it
mkdir /home/ecif/keys ok , don't forget generate keys
$ l
drwxrwxr-x 2 ecif ecif 4096 04-05 16:06 bin
drwxr-xr-x 2 ecif ecif 4096 04-05 16:08 etc
drwxrwxr-x 2 ecif ecif 4096 04-05 16:06 exsh
drwxr-xr-x 2 ecif ecif 4096 04-05 16:08 file
-rw-rw-r-- 1 ecif ecif 1001633 04-05 16:06 ibp-Linux-0.0.24.1-bin.tar.gz
drwxr-xr-x 2 ecif ecif 4096 04-05 16:08 keys
drwxrwxr-x 2 ecif ecif 4096 04-05 16:06 lib
drwxr-xr-x 2 ecif ecif 4096 04-05 16:08 log
drwxrwxr-x 2 ecif ecif 4096 04-05 16:06 shbin
drwxr-xr-x 2 ecif ecif 4096 04-05 16:08 so
$ l etc/
-rw-rw-r-- 1 ecif ecif 476 04-05 16:08 ibma.conf
ibma.conf
是注冊(cè)中心主配置文件继找,配置文件格式為JSON。
1.1.3.2. 安裝日志采集端
編寫日志采集端配置文件
$ cat $HOME/etc/logpipe.conf
{
"log" :
{
"log_file" : "/tmp/ibms_logpipe_log.log" ,
"log_level" : "WARN"
} ,
"inputs" :
[
{ "plugin":"so/logpipe-input-file.so" , "path":"/home/ecif/log" , "rotate_size":10000000 , "exec_after_rotating":"rm -f ${LOGPIPE_ROTATING_NEW_FILENAME}" }
] ,
"outputs" :
[
{ "plugin":"so/logpipe-output-tcp.so" , "ip":"158.1.0.55","port":10101 }
]
}
啟動(dòng)日志采集端
$ logpipe -f $HOME/etc/logpipe.conf
/home/iblog/log/
里新增日志或現(xiàn)存日志追加內(nèi)容會(huì)被異步實(shí)時(shí)采集傳輸?shù)饺罩練w集端逃沿,日志文件到達(dá)10MB會(huì)被清除婴渡。
logpipe
由一個(gè)管理進(jìn)程和一個(gè)工作進(jìn)程組成幻锁,想要停止時(shí)只要向管理進(jìn)程發(fā)送TERM信號(hào)即可。
設(shè)置定時(shí)清理任務(wù)
周期性日志文件轉(zhuǎn)檔任務(wù)边臼,每天23點(diǎn)55分執(zhí)行一次:
55 23 * * * . $HOME/shbin/baklog >/tmp/ibms_baklog.stdout 2>&1
周期性清理日志轉(zhuǎn)檔包任務(wù)哄尔,每天3點(diǎn)0分執(zhí)行一次:
0 3 * * * . $HOME/shbin/rmlogbak 30 >/tmp/ibms_rmlogbak.stdout 2>&1
1.1.3.3. 安裝注冊(cè)代理
修改注冊(cè)代理配置文件
{
"ibma" :
{
"this_node" : "ECIF" , // 本節(jié)點(diǎn)名
"comm" :
{
"min_compress_size" : 16 // 當(dāng)HTTP體大于該大小時(shí)自動(dòng)啟用壓縮
} ,
"log" :
{
"iblog_server" : "" ,
"event_output" : "file::log/event.log" ,
"main_output" : "file::log/ibma_ECIF_127.0.0.1:18111_main.log" ,
"main_loglevel" : INFO ,
"worker_output" : "file::log/ibma_ECIF_127.0.0.1:18111_worker.log" ,
"worker_loglevel" : INFO
}
} ,
"ibac" :
{
"connecting_timeout" : 10 // 客戶端連接(connect)服務(wù)端超時(shí)時(shí)間(單位:秒)
"retry_connect_timeval" : 60 , // 當(dāng)連接失敗后暫禁時(shí)間段(單位:秒)
} ,
"ibms" :
{
"server" :
{
"ip" : "158.1.0.54" , // 注冊(cè)中心IP
"port" : 16001 // 注冊(cè)中心PORT
}
}
}
生成通訊密鑰
$ cd ~/keys
$ ibpgenrsakeys ECIF
$ l
-rw-rw-r-- 1 ecif ECIF 1191 04-05 16:44 ECIF.prikey
-rw-rw-r-- 1 ECIF ECIF 270 04-05 16:44 ECIF.pubkey
注意:ibpgenrsakeys
必須在$HOME/keys/
目錄里執(zhí)行。
在注冊(cè)中心注冊(cè)該節(jié)點(diǎn)主機(jī)
$ ibms -a add_node --node ECIF
OK
$ ibms -a add_node_host --node ECIF --ip 158.1.0.56 --port 18001
OK
注意:如果該節(jié)點(diǎn)主機(jī)只做通訊客戶端柠并,port設(shè)為-18001
究飞。
在通訊節(jié)點(diǎn)啟動(dòng)注冊(cè)代理
$ ibma.sh start
ibma start ok
ecif 9554 1 0 16:51 pts/16 00:00:00 ibma -f ibma.conf -a start
注冊(cè)代理由一個(gè)工作進(jìn)程組成,進(jìn)程日志文件是log/ibma_worker.log
堂鲤。
想要停止注冊(cè)代理亿傅,只要向工作進(jìn)程發(fā)送TERM信號(hào)即可,也可用單實(shí)例管理腳本ibma.sh stop
瘟栖。
在注冊(cè)中心自動(dòng)推導(dǎo)下發(fā)配置變動(dòng)通知(主要通知關(guān)聯(lián)節(jié)點(diǎn))
$ ibms -s changed_nodes
ECIF
$ ibms -a distribute_config
OK
1.1.3.4. 安裝通訊服務(wù)端平臺(tái)(如果需要的話)
初始化通訊服務(wù)端平臺(tái)環(huán)境
$ ibas -a init
WARN : /home/ecif/etc exist !
/home/ecif/etc/ibas.conf created
WARN : /home/ecif/log exist !
WARN : /home/ecif/file exist !
WARN : /home/ecif/so exist !
WARN : /home/ecif/keys exist !
$ l etc/
-rw-rw-r-- 1 ecif ecif 476 04-05 16:08 ibma.conf
-rw-rw-r-- 1 ecif ecif 864 04-05 17:34 ibas.conf
ibas.conf
是通訊服務(wù)端平臺(tái)主配置文件葵擎,格式為JSON。
修改通訊服務(wù)端平臺(tái)主配置文件
{
"ibas" :
{
"server" : // 服務(wù)端偵聽地址
{
"ip" : "158.1.0.56" , // 通訊服務(wù)端偵聽I(yíng)P
"port" : 18001 // 通訊服務(wù)端偵聽PORT
} ,
"mpm" : // 多進(jìn)程控制
{
"mode" : "STATIC_WORKERPOOL" , /* FORK,STATIC_WORKERPOOL,DYNAMIC_WORKERPOOL */ // 服務(wù)模式:分別是 即時(shí)創(chuàng)建短工作進(jìn)程半哟、靜態(tài)工作進(jìn)程池酬滤、動(dòng)態(tài)工作進(jìn)程池
"max_count" : 10 , // 最大工作進(jìn)程數(shù)量 或 靜態(tài)保持工作進(jìn)程數(shù)量
"DYNAMIC_WORKERPOOL" :
{
"min_idle_count" : 1 , // 最小空閑狀態(tài)工作進(jìn)程數(shù)量(動(dòng)態(tài)進(jìn)程池時(shí)有效)
"max_idle_count" : 5 , // 最大空閑狀態(tài)工作進(jìn)程數(shù)量(動(dòng)態(tài)進(jìn)程池時(shí)有效)
"create_interval" : 1 , // 每調(diào)整周期最大創(chuàng)建工作進(jìn)程數(shù)量(動(dòng)態(tài)進(jìn)程池時(shí)有效)
"destroy_interval" : 10 , // 每調(diào)整周期最大銷毀工作進(jìn)程數(shù)量(動(dòng)態(tài)進(jìn)程池時(shí)有效)
"max_process_count" : 10000 // 每個(gè)工作進(jìn)程處理多少交易后自動(dòng)重啟,以釋放應(yīng)用泄露的系統(tǒng)資源寓涨,保持工作進(jìn)程健康
}
} ,
"security" : // 安全控制
{
"sign_flag" : 1 , // 與客戶端握手時(shí)盯串,建議雙方業(yè)務(wù)報(bào)文是否簽名
"compress_flag" : 1 , // 與客戶端握手時(shí),建議雙方業(yè)務(wù)報(bào)文是否壓縮
"encrypt_flag" : 1 // 與客戶端握手時(shí),建議雙方業(yè)務(wù)報(bào)文是否加密
} ,
"app" : // 應(yīng)用包選項(xiàng)
{
"max_so_cache_count" : 1000 // 應(yīng)用包打開句柄緩存池最大緩存數(shù)量,采用LRU踢出使用最少的應(yīng)用包打開句柄緩存
} ,
"log" : // 日志配置
{
"iblog_server" : "" ,
"event_output" : "file::log/event.log" ,
"main_output" : "file::log/ibas_158.1.0.56-18001_main.log" ,
"main_loglevel" : DEBUG ,
"monitor_output" : "file::log/ibas_158.1.0.56-18001_monitor.log" ,
"monitor_loglevel" : INFO ,
"worker_output" : "file::log/ibas_158.1.0.56-18001_worker_%d.log" ,
"worker_loglevel" : INFO ,
"app_output" : "file::log/app_%s.log" ,
"app_loglevel" : INFO
}
} ,
"ibma" :
{
"config_filename" : "ibma.conf" // 本地注冊(cè)代理主配置文件沃饶,用于連接配置共享內(nèi)存
}
}
啟動(dòng)通訊服務(wù)端平臺(tái)
$ ibas.sh start
ibas start ok
ecif 9554 1 0 16:51 pts/16 00:00:00 ibas -f ibas.conf -a start
ecif 9869 9554 0 16:51 pts/16 00:00:00 ibas -f ibas.conf -a start
ecif 9871 9554 0 16:51 pts/16 00:00:00 ibas -f ibas.conf -a start
ecif 9886 9554 0 16:51 pts/16 00:00:00 ibas -f ibas.conf -a start
...
通訊服務(wù)端平臺(tái)由一個(gè)管理進(jìn)程(父)和一組工作進(jìn)程(子)組成沙热,管理進(jìn)程日志文件是log/ibas_monitor.log
,工作進(jìn)程日志文件是log/ibas_worker_(數(shù)字).log
。
想要停止通訊服務(wù)端平臺(tái),只要向管理進(jìn)程發(fā)送TERM信號(hào)即可,也可用單實(shí)例管理腳本ibas.sh stop
年栓。
1.2. 部署應(yīng)用
(以ecif@158.1.0.56:18001為例)
1.2.1. 新增應(yīng)用
上傳應(yīng)用包
$ scp ABCD0001.so ibms@158.1.0.54:~/so
新增交易碼配置
$ ibms -a add_app --app ABCD0001 --desc "交易中文描述" --bin ABCD0001.so --timeout 60
OK
timeout
是客戶端通訊超時(shí)(單位:秒),timeout2
是服務(wù)端應(yīng)用超時(shí)(單位:秒)薄霜,如果不設(shè)置的話則由timeout
乘以1.5
默認(rèn)計(jì)算某抓。--server-node (server_node)
是缺省服務(wù)端節(jié)點(diǎn)名用于配置代替代碼指定。
新增或更新項(xiàng)目信息
如果新增項(xiàng)目
$ ibms -a add_project --project "(項(xiàng)目英文名)" --server-nodes "ECIF" --client-nodes "CORE" --apps "ABCD0001"
如果項(xiàng)目已存在
$ ibms -a set_project --project "(項(xiàng)目英文名)" --server-nodes "ECIF" --client-nodes "CORE" --apps "(已有交易碼集) ABCD0001"
提交改動(dòng)惰瓜,自動(dòng)推導(dǎo)出所有關(guān)聯(lián)節(jié)點(diǎn)并下發(fā)
$ ibms -a distribute_config
保存配置到配置文件
$ ibms -a save_config
1.2.2. 更新應(yīng)用(立即自動(dòng)推導(dǎo)下發(fā)模式)
如果注冊(cè)中心啟用了立即自動(dòng)推導(dǎo)下發(fā)模式否副,即配置misc/auto_download_bin_enable 1
。
上傳應(yīng)用包
$ scp ABCD0002.so ibms@158.1.0.54:~/so
注冊(cè)中心監(jiān)控$HOME/so/
目錄鸵熟,一旦有應(yīng)用包新增或發(fā)生變動(dòng)則立即推導(dǎo)出關(guān)聯(lián)節(jié)點(diǎn)并下發(fā)副编。如果找不到交易碼配置則忽略。
1.2.3. 更新應(yīng)用(批量自動(dòng)推導(dǎo)下發(fā)模式)
上傳應(yīng)用包
$ scp ABCD0002.so ibms@158.1.0.54:~/so
設(shè)置交易碼更新標(biāo)志
$ ibms -a update_app --app "ABCD0002"
確認(rèn)自動(dòng)推導(dǎo)結(jié)果變動(dòng)了哪些節(jié)點(diǎn)
$ ibms -s cnodes_changed
批量下發(fā)配置和應(yīng)用包
$ ibms -a distribute_config
1.2.4. 刪除應(yīng)用
刪除交易碼信息
$ ibms -a remove_app --app ABCD0003
確認(rèn)自動(dòng)推導(dǎo)結(jié)果變動(dòng)了哪些節(jié)點(diǎn)
$ ibms -s cnodes_changed
批量下發(fā)配置和應(yīng)用包
$ ibms -a distribute_config
1.3. 注冊(cè)節(jié)點(diǎn)其它管理
1.3.1. 注冊(cè)中心
重啟注冊(cè)中心
$ ibms.sh restart
列表所有通訊節(jié)點(diǎn)配置
$ ibms -s nodes
列表所有交易碼配置
$ ibms -s apps
列表所有項(xiàng)目配置
$ ibms -s projects
列表已連接注冊(cè)代理和通訊服務(wù)端平臺(tái)會(huì)話
$ ibms -s sessions
強(qiáng)制下發(fā)配置和應(yīng)用包某一通訊節(jié)點(diǎn)主機(jī)集群
當(dāng)自動(dòng)推導(dǎo)有問題時(shí),可使用指定節(jié)點(diǎn)名的強(qiáng)制下發(fā)痹届。
$ ibms -a download_config --node (node)
一鍵自動(dòng)安裝通訊節(jié)點(diǎn)擴(kuò)大集群
(正在研發(fā)中)
一鍵自動(dòng)安裝通訊節(jié)點(diǎn)縮小集群
(正在研發(fā)中)
1.3.2. 通訊節(jié)點(diǎn)集群管理
集群管理配置文件在$HOME/etc/ibp_cluster.conf
呻待,每行格式為(節(jié)點(diǎn)名) (IP) (系統(tǒng)用戶名)
。
下發(fā)最新版安裝包到集群
$ ibp_distribute.sh (ibp-Linux-x.x.x.x-bin.tar.gz)
集群解開最新版安裝包
$ ibma_cluster.sh ALL execmd ibp_unpack.sh (ibp-Linux-x.x.x.x-bin.tar.gz)
重啟集群中所有注冊(cè)代理
$ ibma_cluster.sh ALL restart
重啟集群中指定通訊節(jié)點(diǎn)的注冊(cè)代理
$ ibma_cluster.sh (node) restart
優(yōu)雅重啟集群中所有通訊服務(wù)端平臺(tái)
$ ibas_cluster.sh ALL restart_graceful
優(yōu)雅重啟集群中指定通訊節(jié)點(diǎn)的服務(wù)端平臺(tái)
$ ibas_cluster.sh (node) restart_graceful
1.4. 編譯配置文件
當(dāng)注冊(cè)中心的通訊節(jié)點(diǎn)等配置文件很大時(shí)队腐,啟動(dòng)加載將耗費(fèi)很多解析時(shí)間蚕捉,IBP引入編譯配置文件機(jī)制,預(yù)先讀入解析配置柴淘,吐出內(nèi)存映像到二進(jìn)制文件迫淹,再啟動(dòng)裝載配置時(shí)發(fā)現(xiàn)有預(yù)編譯二進(jìn)制配置文件則從其裝載,大大加快裝載性能为严,縮短啟動(dòng)時(shí)間敛熬。
以下命令預(yù)先讀入解析配置,吐出內(nèi)存映像到二進(jìn)制文件
$ ibms -a build_config
1.5. 用戶自定義KV配置
每個(gè)通訊節(jié)點(diǎn)里的應(yīng)用可能需要自己的配置第股,比如連接硬件加密機(jī)型號(hào)应民、IP、PORT夕吻,IBP在集群配置中加入了通訊節(jié)點(diǎn)KV配置機(jī)制诲锹,替代應(yīng)用自己管理篇日志的一大套麻煩事兒(如重載),只需在注冊(cè)中心配置通訊節(jié)點(diǎn)下的KV配置涉馅,隨著集群配置一起下發(fā)給通訊節(jié)點(diǎn)归园,通訊節(jié)點(diǎn)里的應(yīng)用通過注冊(cè)代理API即可直接訪問這些配置。
$ ibms -a set_node_kv --node (node) --key (key) --value (value)
確認(rèn)自動(dòng)推導(dǎo)結(jié)果變動(dòng)了哪些節(jié)點(diǎn)
$ ibms -s cnodes_changed
批量下發(fā)配置和應(yīng)用包
$ ibms -a distribute_config
2. 可執(zhí)行程序參考
2.1. 注冊(cè)中心主程序
不帶任何參數(shù)執(zhí)行ibms可得到所有參數(shù)列表
SAGE : ibms -f ibms.conf -a start
-s sessions
-s nodes
-a add_node --node (node) [ --invalid (invalid) ] [ --key-exp (key_exp) ]
-a set_node --node (node) [ --invalid (invalid) ] [ --key-exp (key_exp) ]
-a remove_node --node (node)
-a add_node_host --node (node) --ip (ip) --port (port)
-a remove_node_host --node (node) --ip (ip) --port (port)
-s apps
-a add_app --app (app) --desc (desc) --bin (bin) --timeout (timeout) [ --timeout2 (timeout2) ] [ --invalid (invalid) ] [ --server-node (server_node) ]
-a set_app --app (app) --desc (desc) --bin (bin) --timeout (timeout) [ --timeout2 (timeout2) ] [ --invalid (invalid) ] [ --server-node (server_node) ]
-a update_app --app (app)
-a remove_app --app (app)
-s projects
-a add_project --project (project) --server-nodes (server_nodes) --client-nodes (client_nodes) --apps (apps)
-a set_project --project (project) --server-nodes (server_nodes) --client-nodes (client_nodes) --apps (apps)
-a remove_project --project (project)
-a save_config
-s nodes_kv
-a add_node_kv --node (node) --key (key) --value (value)
-a remove_node_kv --node (node) --key (key) --value (value)
-a set_node_kv --node (node) --key (key) --value (value)
-a distribute_config
-a download_config --node (node)
-s nodes_changed
-a build_config
-a init
kill -USR1 (pid) : reload log output
kill -USR2 (pid) : reload nodes,apps,projects config
- -f 指定主配置文件名
- -a start 啟動(dòng)
- -s sessions 顯示所有已建立連接(包含ibms client稚矿、ibma)
- -s nodes 顯示所有已配置通訊節(jié)點(diǎn)信息
- -a add_node 新增通訊節(jié)點(diǎn)信息
- -a set_node 修改通訊節(jié)點(diǎn)信息
- -a remove_node 刪除通訊節(jié)點(diǎn)信息
- -a add_node_host 新增通訊節(jié)點(diǎn)主機(jī)信息
- -a remove_node_host 刪除通訊節(jié)點(diǎn)主機(jī)信息
- -s apps 顯示所有已配置交易碼信息
- -a add_app 新增交易碼信息
- -a set_app 修改交易碼信息
- -a remove_app 刪除交易碼信息
- -s projects 顯示所有已配置項(xiàng)目信息
- -a add_project 新增項(xiàng)目信息
- -a set_project 修改項(xiàng)目信息
- -a remove_project 刪除項(xiàng)目信息
- -a save_config 保存配置信息到文件
- -s nodes_kv 顯示節(jié)點(diǎn)KV信息
- -a add_node_kv增加節(jié)點(diǎn)KV信息
- -a remove_node_kv 刪除節(jié)點(diǎn)KV信息
- -a set_node_kv 修改節(jié)點(diǎn)KV信息
- -a distribute_config 全部下發(fā)配置
- -a build_config 生成.bin
- -s nodes_changed 顯示所有已修改配置涉及通訊節(jié)點(diǎn)列表
- -a commit_config 下發(fā)所有已修改配置
- -a download_config 強(qiáng)制下發(fā)指定通訊節(jié)點(diǎn)所有配置
- -a init 初始化注冊(cè)中心配置文件
- kill TERM (pid) 退出
- kill -USR1 (pid) 重載日志配置
- kill -USR2 (pid) 重載所有配置(未實(shí)現(xiàn))
2.2. 注冊(cè)代理主程序
不帶任何參數(shù)執(zhí)行ibma可得到所有參數(shù)列表
USAGE : ibma -f ibma.conf -a [ start | start_cleanly ]
-s this_node
-s [ nodes | apps | nodes_kv ]
-a init
kill -USR1 : reload log
kill -USR2 : stop with removing config space
- -f 指定主配置文件名
- -a start 啟動(dòng)
- -a start_cleanly 干凈的啟動(dòng)(啟動(dòng)時(shí)清理所有存在的索引庸诱、配置共享內(nèi)存;慎用)
- -s this_node顯示本通訊節(jié)點(diǎn)名
- -s nodes 顯示本地配置共享內(nèi)的所有通訊節(jié)點(diǎn)信息
- -s apps顯示本地配置共享內(nèi)的所有交易碼信息
- -s nodes_kv顯示本地配置共享內(nèi)的所有key-value信息
- -a init 初始化注冊(cè)代理配置文件
- kill -TERM (pid) 退出
- kill -USR1 (pid) 重載日志配置
- kill -USR2 (pid) 干凈的退出(退出時(shí)清理所有索引盐捷、配置共享內(nèi)存偶翅;慎用)
2.3. 通訊服務(wù)端平臺(tái)主程序
不帶任何參數(shù)執(zhí)行ibas可得到所有參數(shù)列表
USAGE : ibas -f ibas.conf -a start
-s status
-s bbstat
-s bbdetail
-a init
- -f 指定主配置文件名
- -a start 啟動(dòng)
- -s status 顯示服務(wù)端狀態(tài)
- -s bbstat 顯示進(jìn)程池統(tǒng)計(jì)信息
- -s bbdetail 顯示進(jìn)程池明細(xì)信息
- -a init 初始化通訊服務(wù)端配置文件
- kill TERM (pid) 退出
- kill -USR1 (pid) 重載日志配置
2.4. 遠(yuǎn)程命令代理主程序
USAGE : ibcmd -a start
--ip (ip) --port (port) -a execmd --cmd (cmd)
--ip (ip) --port (port) -a putfile --file (file)
--ip (ip) --port (port) -a getfile --file (file)
- -a start 啟動(dòng)服務(wù)端
- --ip (ip) --port (port) -a execmd --cmd (cmd) 作為客戶端連接服務(wù)端遠(yuǎn)程執(zhí)行命令,捕獲輸出
- --ip (ip) --port (port) -a putfile --file (file) 作為客戶端連接服務(wù)端遠(yuǎn)程執(zhí)行命令碉渡,推送文件
- --ip (ip) --port (port) -a getfile --file (file) 作為客戶端連接服務(wù)端遠(yuǎn)程執(zhí)行命令,拉取文件
2.5. 日志收集器
不帶任何參數(shù)執(zhí)行l(wèi)ogpipe可得到所有參數(shù)列表
USAGE : logpipe -v
logpipe -f (config_file) [ --no-daemon ] [ --start-once-for-env "(key) (value)" ]
- -v 顯示當(dāng)前版本號(hào)
- -f 指定配置文件
- --no-daemon 不轉(zhuǎn)換為守護(hù)進(jìn)程
- --start-once-for-env "(key) (value)" 設(shè)置為環(huán)境變量傳遞給插件母剥,啟動(dòng)后只傳遞一次滞诺,如插件自然重啟或崩潰后重啟初始化時(shí)不會(huì)收到該環(huán)境變量,特別用于
logpipe-input-file
插件啟動(dòng)時(shí)全量采集一次环疼。
2.6. 模擬發(fā)起IBP交易測(cè)試程序
不帶任何參數(shù)執(zhí)行ibpsend可得到所有參數(shù)列表
USAGE : ibpsend node app req_msg_filename [ req_file_filename1 [ req_file_filename2 [ req_file_filename3 [ req_file_filename4 ] ] ] ]
NOTE : req_file_filename format "(file_id)_(filename).(ext)"
- node: 目標(biāo)節(jié)點(diǎn)
- app: 請(qǐng)求交易碼
- req_msg_filename: 請(qǐng)求文件名(請(qǐng)求文件必須存在)
- req_file_filename1:請(qǐng)求文件1(可選)
- req_file_filename2:請(qǐng)求文件2(可選)
- req_file_filename3:請(qǐng)求文件3(可選)
- req_file_filename4:請(qǐng)求文件4(可選)
3. 腳本參考
3.1. 注冊(cè)中心管理腳本
不帶任何參數(shù)執(zhí)行ibms.sh可得到所有參數(shù)列表
USAGE : ibms.sh [ status | start | stop | kill | restart | reload_log | show_nodes | show_apps | show_projects ]
- status 查詢狀態(tài)
- start 啟動(dòng)
- stop 停止
- kill 強(qiáng)制停止
- restart 重啟
- reload_log 重載日志配置
- show_nodes顯示所有已配置通訊節(jié)點(diǎn)信息
- show_apps顯示所有已配置交易碼信息
- show_projects顯示所有已配置項(xiàng)目信息
3.2. 注冊(cè)代理管理腳本
不帶任何參數(shù)執(zhí)行可得到所有參數(shù)列表
USAGE : ibma.sh [ status | start | start_cleanly | stop | stop_cleanly | kill | restart | reload_log | this_node | nodes | apps ]
- status 查詢狀態(tài)
- start 啟動(dòng)
- start_cleanly 干凈的啟動(dòng)习霹,會(huì)清理殘存的索引共享內(nèi)存和配置共享內(nèi)存
- stop 停止
- stop_cleanly 干凈的停止,會(huì)清理殘存的索引共享內(nèi)存和配置共享內(nèi)存
- kill 強(qiáng)制停止
- restart 重啟
- reload_log 重載日志配置
- this_node顯示本通訊節(jié)點(diǎn)名
3.3. 注冊(cè)代理集群管理腳本
不帶任何參數(shù)執(zhí)行可得到所有參數(shù)列表
USAGE : ibma_cluster.do [ (node) | ALL ] [ start | start_cleanly | stop | stop_cleanly | kill | status | cmd (cmd) ]
- start 啟動(dòng)集群
- start_cleanly 干凈的啟動(dòng)集群炫隶,會(huì)清理殘存的索引共享內(nèi)存和配置共享內(nèi)存
- stop 停止集群
- stop_cleanly 干凈的停止集群淋叶,會(huì)清理殘存的索引共享內(nèi)存和配置共享內(nèi)存
- kill 強(qiáng)制停止集群
- status 查詢集群狀態(tài)
- cmd (cmd) 執(zhí)行其它自定義命令
3.4. 通訊服務(wù)端平臺(tái)管理腳本
不帶任何參數(shù)執(zhí)行可得到所有參數(shù)列表
USAGE : ibas.sh [ status | start | stop | kill | restart | restart_graceful | reload_log ]
- status 查詢狀態(tài)
- start 啟動(dòng)
- stop 停止
- kill 強(qiáng)制停止
- restart 重啟
- restart_graceful 優(yōu)雅重啟
- reload_log 重載日志配置
3.5. 通訊服務(wù)端平臺(tái)集群管理腳本
不帶任何參數(shù)執(zhí)行可得到所有參數(shù)列表
USAGE : ibas_cluster.do [ (node) | ALL ] [ start | stop | kill | status | cmd (cmd) ]
- start 啟動(dòng)集群
- stop 停止集群
- kill 強(qiáng)制停止集群
- status 查詢集群狀態(tài)
- cmd (cmd) 執(zhí)行其它自定義命令
3.6. 版本打包腳本
必須在$HOME/
執(zhí)行
打執(zhí)行包
$ ibp_pack_bin.sh
打開發(fā)包
$ ibp_pack_dev.sh
3.7. 集群分發(fā)腳本
$ ibp_distribute.sh (當(dāng)前目錄里的文件名)
3.8. 版本解包腳本
解包本機(jī)當(dāng)前目錄里的壓縮包(可執(zhí)行文件會(huì)先刪除目標(biāo)文件再解包)。
$ ibp_unpack.sh (當(dāng)前目錄里的文件名)
一般與集群管理腳本配合使用伪阶。
3.9. TM函數(shù)耗時(shí)日志解釋腳本
USAGE : ibp_perfmstat.sh [ @FILENAME | (string) ]
3.10. 日志清理腳本
刪除$HOME/log/
里的所有日志文件*.log*
煞檩。
USAGE : rmlog
3.11. 日志歸檔腳本
移動(dòng)打包$HOME/log/*.log*
到$HOME/logbak/
里处嫌。
USAGE : baklog
3.12. 刪除日志歸檔腳本
按保留天數(shù)清理$HOME/logbak/
里的日志備份包。
USAGE : rmlogbak [ days ]
- days 保留天數(shù)
一般與crontab配合使用斟湃。
3.13. 日志解包腳本
USAGE : gunziplogbak [ .gz.tar patten ]
- .gz.tar 日志備份包
- patten 文件名匹配字符串