Resin 的 watchdog(看门狗)介绍
為了穩定和安全,Resin使用一個獨立的watchdog進程來啟動和監視Resin服務器。watchdog連續你檢測Resin服務器的狀 態,如果其沒有反應或者遲鈍,將會重啟Resin服務器進程。大多數情況下,watchdog從resin.xml中讀取配置信息,而不需要其它的附加配 置。某些ISP服務商可能使用特別的配置,為了安全他們會配置watchdog來隔離JVM(Java虛擬主機)。
概述?
因為watchdog作為一個服務運行,大多數情況下你根本不需要注意它。標準的配置下,一個機器上的watchdog可以監視這個機器上所有JVM,因 此大部分情況下你不需要修改watchdog的配置。需要你管理watchdog的任務就是,如果機器發生了問題,停止watchdog,并檢查 watchdog日志中Resin服務器的重啟事件。
watchdog自動重啟崩潰和退出的Resin服務。因此如果你想停止Resin,你需要告訴watchdog來停止Resin實例,或者完 全停止watchdog。使用resin.ar中的主程序(main)來控制watchdog,有用來啟動、停止、重啟Resin實例的命令,同樣還有報 告watchdog狀態的命令。
大多數用戶不需要特別的配置watchdog,但是ISP和大的站點可能創建特殊的watchdog.xml(包含<watchdog- manager>標簽)來控制watchdog。<watchdog-manager>允許ISP控制watchdog,為他們用戶的 Resin實例指定附加的命令行參數,包括為他們的用戶創建安全的chroot環境的能力。典型地,watchdog以root帳號運行,然而用戶實例使 用他們各自的用戶id。
命令行
resin.jar中的主類ResinBoot的命令行用來控制watchdog。主要的操作包括:start、stop、restart、shutdown和status。
start
"start"命令使用給定的server id啟動一個新的Resin實例。ResinBoot首先會嘗試在當前機器上的watchdog,在需要時會啟動一個新的watchdog。在resin.xml中定義的server id必須是惟一的。
例如: watchdog啟動
resin-3.2.x> java -jar lib/resin.jar -conf conf/test.conf -server a start
Resin/3.2.x started -server 'a' for watchdog at 127.0.0.1:6700
stop?
"stop"命令使用給定的server id停止Resin實例。如果停止的實例是watchdog管理的最后一個Resin實例,watchdog也會自動退出。如果沒有指定 -server 參數,watchdog使用默認的 -server "" 。
例子: watchdog停止
resin-3.2.x> java -jar lib/resin.jar stop
Resin/3.2.x started -server '' for watchdog at 127.0.0.1:6600
status?
"status"命令統計被watchdog服務管理的Resin實例的狀態。
例子: watchdog狀態
resin-3.2.x> java -jar lib/resin.jar status
Resin/3.2.x status for watchdog at 127.0.0.1:6600
server '' : active
? password: missing
? user: ferg
? root: /home/test/resin/
? conf: /etc/resin/resin.xml
單一Resin實例?
這個例子顯示了一個單一服務器站點,其監聽標準的HTTP端口80,并以resin這個用戶身份運行。在這個例子中watchdog是以root用戶身份運行的,因此其能夠綁定到特殊的端口80上,但是Resin實例是以resin身份運行的。
因為使用了默認的配置,watchdog監聽6600端口來獲取命令。
例子: /etc/resin/resin.xml
<resin xmlns="http://caucho.com/ns/resin?">
<cluster id="">
? <server id="app-a" address="127.0.0.1">
??? <user-name>resin</user-name>
??? <group-name>resin</group-name>
??? <http port="80" />
? </server>
? <resin:import path="${resin.home}/conf/app-default.xml" />
? <host id="">
??? <web-app id="" path="/var/www/htdocs" />
? </host>
</cluster>
</resin>
在一個機器上使用共享的watchdog實現負載平衡?
當在一個機器上運行多個Resin實例的時候,一個watchdog-manager就能管理所有的Resin實例。指定server id用來決定那個Resin實例是start或者stop。
在這個例子中,有一個web-tier服務器做為負載平衡器,兩個app-tier服務器處理后臺數據,它們都在一個機器上。為了維護和升級方便,一個站點可能需要多個app-rier服務器。當一個停機的時候,第二個服務器可以繼續服務。
這個例子使用默認的watchdog配置,其讀取的是標準的resin.xml文件。watchdog進程和ResinBoot都讀取resin.xml 配置文件,因此不需要特別的watchdog配置。watchdog能夠自動發現運行在這個機器上的多個Resin實例并管理它們。
同一機器使用不同的watchdog來實現負載平衡?
在某些情況下,最好讓每個Resin實例有其自己的watchdog,例如當多個用戶在使用相同的機器。每個<server>塊配置一 個<watchdog-port>。因為watchdog將讀取resin.xml使用<server>塊匹配命令行參數中的 -server id,每個watchdog將啟動期自己的端口。
例子: /etc/resin/resin.xml
總結
以上是生活随笔為你收集整理的Resin 的 watchdog(看门狗)介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: chrome 主进程cpu占用50%怎么
- 下一篇: resin常见有关问题