專利名稱:一種即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的分發(fā)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及即時(shí)通訊服務(wù)器的管理領(lǐng)域,特別是涉及一種即時(shí)通訊服務(wù)器 監(jiān)控?cái)?shù)據(jù)的分發(fā)方法和裝置。
技術(shù)背景即時(shí)通訊(IM,Instant Messaging)是一種使人們能在網(wǎng)上識(shí)別在線用戶并與他們實(shí)時(shí)交換信息的技術(shù),由于其所擁有的實(shí)時(shí)性、低成本、高效率等諸多 優(yōu)勢(shì),使之成為網(wǎng)民們最喜愛(ài)的網(wǎng)絡(luò)溝通方式之一。作為即時(shí)通訊平臺(tái)的IM系統(tǒng)中,往往是由一臺(tái)或多臺(tái)服務(wù)器組成的服務(wù) 器集群,統(tǒng)一對(duì)外提供即時(shí)通訊服務(wù)。每一臺(tái)服務(wù)器穩(wěn)定正常的工作,是整個(gè) IM系統(tǒng)穩(wěn)定的基礎(chǔ)與關(guān)鍵。為了保證IM系統(tǒng)中各服務(wù)器都能夠正常運(yùn)行,IM 系統(tǒng)的維護(hù)人員就必須能夠及時(shí)地獲知各服務(wù)器的運(yùn)行狀況。目前,獲取IM系統(tǒng)中各服務(wù)器監(jiān)控?cái)?shù)據(jù)的一般方法是由IM服務(wù)器提 供一個(gè)統(tǒng)一的http服務(wù)端口,用于提供IM系統(tǒng)中各服務(wù)器的監(jiān)控?cái)?shù)據(jù)。如果 需要查看各服務(wù)器的運(yùn)行狀況,就需要向該服務(wù)器發(fā)送請(qǐng)求,通過(guò)所述http 服務(wù)獲取監(jiān)控?cái)?shù)據(jù)。但是,由于監(jiān)控?cái)?shù)據(jù)總是在不斷地更新和變化,而用戶發(fā) 送請(qǐng)求卻存在一定的時(shí)間間隔,若某臺(tái)服務(wù)器出現(xiàn)了問(wèn)題而此時(shí)用戶尚未發(fā)送 請(qǐng)求,就會(huì)導(dǎo)致無(wú)法及時(shí)獲得該IM服務(wù)器的運(yùn)行狀況,也就無(wú)法及時(shí)對(duì)該服 務(wù)器出現(xiàn)的問(wèn)題做出響應(yīng)和處理。另外,若為了盡可能及時(shí)的從服務(wù)器獲取監(jiān) 控?cái)?shù)據(jù),則必須增加獲取的頻率,而這樣,會(huì)導(dǎo)致網(wǎng)絡(luò)流量的不斷增大和IM 服務(wù)器負(fù)荷的增加,進(jìn)一步造成了 IM服務(wù)器運(yùn)行的不穩(wěn)定性。發(fā)明內(nèi)容本發(fā)明公開(kāi)了 一種即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的分發(fā)方法和裝置,以解決現(xiàn) 有技術(shù)中無(wú)法及時(shí)獲取即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的問(wèn)題。為解決上述技術(shù)問(wèn)題,本發(fā)明提供了 一種即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的分發(fā) 方法,包括據(jù),若監(jiān)控?cái)?shù)據(jù)異常,則;分發(fā)器根據(jù)存儲(chǔ)的用于接收監(jiān)控?cái)?shù)據(jù)的接收者標(biāo)識(shí), 將取得的異常信息作為即時(shí)信息發(fā)送給與所述接收者標(biāo)識(shí)相應(yīng)的 一個(gè)或多個(gè)即時(shí)通訊客戶端;所述即時(shí)通訊客戶端用于呈現(xiàn)所述即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù)。優(yōu)選的,所述分發(fā)器為一個(gè)即時(shí)通訊客戶端。優(yōu)選的,還包括預(yù)置查詢請(qǐng)求與操作命令的對(duì)應(yīng)關(guān)系,所述查詢請(qǐng)求為 其他即時(shí)通訊客戶端發(fā)送的即時(shí)消息;根據(jù)查詢請(qǐng)求對(duì)應(yīng)的操作命令取得相應(yīng) 的監(jiān)控?cái)?shù)據(jù),并將所述監(jiān)控?cái)?shù)據(jù)作為即時(shí)信息發(fā)送給相應(yīng)的即時(shí)通訊客戶端。優(yōu)選的,所述即時(shí)通訊服務(wù)器是由一個(gè)或多個(gè)即時(shí)通訊服務(wù)器組成的服務(wù)器集群。優(yōu)選的,所述監(jiān)控?cái)?shù)據(jù)存儲(chǔ)在隨機(jī)存取存儲(chǔ)器中,所述隨機(jī)存取存儲(chǔ)器與 所述分發(fā)器位于同 一計(jì)算設(shè)備中。優(yōu)選的,還包括將所述異常信息作為即時(shí)信息發(fā)送成功后,更新監(jiān)控?cái)?shù) 據(jù)中的發(fā)送標(biāo)記。優(yōu)選的,還包括根據(jù)預(yù)先設(shè)置的服務(wù)器集群中各即時(shí)通訊服務(wù)器的配置信息,使用不同的 用戶標(biāo)識(shí)向與其相應(yīng)的即時(shí)通訊服務(wù)器發(fā)送登錄請(qǐng)求,同時(shí)根據(jù)請(qǐng)求過(guò)程產(chǎn)生 與所述即時(shí)通訊服務(wù)器相應(yīng)的監(jiān)控?cái)?shù)據(jù),所述配置信息包含所述即時(shí)通訊服務(wù) 器的IP地址或名稱。為解決上述問(wèn)題本發(fā)明還公開(kāi)了 一種即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的分發(fā)裝 置,包括第一存儲(chǔ)單元,用于存儲(chǔ)即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù); 第二存儲(chǔ)單元,用于存儲(chǔ)接收監(jiān)控?cái)?shù)據(jù)的接收者標(biāo)識(shí); 監(jiān)控單元,用于按照設(shè)定的時(shí)間間隔檢驗(yàn)第一存儲(chǔ)單元中的監(jiān)控?cái)?shù)據(jù),若監(jiān)控?cái)?shù)據(jù)異常,取得該異常信息,所述異常信息包含與所述監(jiān)控?cái)?shù)據(jù)相應(yīng)的即時(shí)通訊服務(wù)器的IP地址或名稱;發(fā)送單元,用于根據(jù)所述監(jiān)控單元的請(qǐng)求,將相應(yīng)的異常信息作為即時(shí)信息發(fā)送給與所述接收者標(biāo)識(shí)相應(yīng)的即時(shí)通訊客戶端,所述即時(shí)通訊客戶端用于呈現(xiàn)即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù)。優(yōu)選的,還包括查詢單元,用于根據(jù)查詢請(qǐng)求對(duì)應(yīng)的操作命令從所述第 一存儲(chǔ)單元中取得相應(yīng)的監(jiān)控?cái)?shù)據(jù),并將所述監(jiān)控?cái)?shù)據(jù)通過(guò)發(fā)送單元發(fā)送給相 應(yīng)的即時(shí)通訊客戶端。優(yōu)選的,所述第 一存儲(chǔ)單元是隨機(jī)存取存儲(chǔ)器或具有相應(yīng)功能的存儲(chǔ)介質(zhì)。優(yōu)選的,還包括更新單元,用于更新第一存儲(chǔ)單元中監(jiān)控?cái)?shù)據(jù)的發(fā)送標(biāo)記。優(yōu)選的,還包括收集單元,用于使用用戶標(biāo)識(shí)向所述服務(wù)器集群中的一 個(gè)或多個(gè)即時(shí)通訊服務(wù)器發(fā)送登錄請(qǐng)求,并根據(jù)請(qǐng)求過(guò)程產(chǎn)生與所述即時(shí)通訊 服務(wù)器相應(yīng)的監(jiān)控?cái)?shù)據(jù),所述監(jiān)控?cái)?shù)據(jù)存儲(chǔ)在所述存儲(chǔ)單元中。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)首先,本發(fā)明通過(guò)定期檢驗(yàn)服務(wù)器監(jiān)控?cái)?shù)據(jù), 一旦發(fā)現(xiàn)異常,就將該異常 信息作為即時(shí)信息發(fā)送給即時(shí)通訊客戶端,系統(tǒng)維護(hù)人員通過(guò)即時(shí)通訊客戶端 獲知服務(wù)器的運(yùn)行狀況。由于監(jiān)控?cái)?shù)據(jù)在出現(xiàn)異常后可立即被檢驗(yàn)出并發(fā)送給 即時(shí)通訊客戶端,因此系統(tǒng)維護(hù)人員可在第一時(shí)間獲知IM系統(tǒng)中異常服務(wù)器 的運(yùn)行狀況,及時(shí)的響應(yīng)和處理該服務(wù)器存在的問(wèn)題,從而保證IM系統(tǒng)各服 務(wù)器的正常運(yùn)行。其次,由于本發(fā)明將監(jiān)控?cái)?shù)據(jù)作為即時(shí)信息發(fā)送給系統(tǒng)維護(hù)人員使用的即 時(shí)通訊客戶端,IM服務(wù)器不再需要響應(yīng)除即時(shí)信息之外的其他請(qǐng)求,因此有 效降低了服務(wù)器的負(fù)荷,并進(jìn)一步保證了 IM服務(wù)器的穩(wěn)定運(yùn)行。同時(shí),由于 IM服務(wù)器不再向外提供http服務(wù)及端口 ,因此也避免了第三方據(jù)此向IM服 務(wù)器發(fā)起的惡意攻擊,提高了 IM服務(wù)器的安全性。由于本發(fā)明利用即時(shí)通信客戶端接收監(jiān)控?cái)?shù)據(jù),因此接收數(shù)據(jù)幾乎不需要 任何額外的成本,用戶可在任何時(shí)間和地點(diǎn)使用任何運(yùn)行有即時(shí)通訊客戶端的 終端設(shè)備登錄IM服務(wù)器并接收監(jiān)控?cái)?shù)據(jù),不但使用成本低而且擴(kuò)展了用戶的 應(yīng)用范圍,使得IM服務(wù)器處于更加及時(shí)、有效的監(jiān)控之中。本發(fā)明通過(guò)使用用于即時(shí)通訊的用戶標(biāo)識(shí)登錄IM服務(wù)器,根據(jù)是否登錄 成功來(lái)判斷該服務(wù)器是否運(yùn)行正常,避免了由服務(wù)器自行監(jiān)控并記錄監(jiān)控?cái)?shù)據(jù) 的方式導(dǎo)致的當(dāng)該服務(wù)器因突發(fā)事件無(wú)法運(yùn)行時(shí),運(yùn)行在該服務(wù)器之上的負(fù) 責(zé)記錄監(jiān)控?cái)?shù)據(jù)的程序也會(huì)停止,并最終導(dǎo)致IM系統(tǒng)維護(hù)人員無(wú)法及時(shí)獲知
該服務(wù)器當(dāng)前運(yùn)行的狀況,也就無(wú)法對(duì)該服務(wù)器做出響應(yīng)和處理。本發(fā)利用是 否成功登錄驗(yàn)證即時(shí)通訊服務(wù)器,據(jù)此產(chǎn)生的監(jiān)控?cái)?shù)據(jù)不受即時(shí)通訊服務(wù)器運(yùn) 行狀況的影響,因此非??煽?。進(jìn)一步的,當(dāng)?shù)卿洺晒^(guò)后,按一定時(shí)間間隔 發(fā)送即時(shí)信息,若發(fā)送失敗,將失敗信息存儲(chǔ)在監(jiān)控?cái)?shù)據(jù)中。因此,本發(fā)明不 但可以監(jiān)控即時(shí)通訊服務(wù)器運(yùn)行是否正常,還可進(jìn)一步監(jiān)控運(yùn)行在該服務(wù)器之 上的即時(shí)通訊服務(wù)程序的應(yīng)用邏輯是否正確。由此產(chǎn)生的監(jiān)控?cái)?shù)據(jù),為IM系統(tǒng)維護(hù)人員及時(shí)準(zhǔn)確地排除該服務(wù)器的故障,保證IM系統(tǒng)的正常運(yùn)行提供了可靠依據(jù)。
圖1是本發(fā)明所述的即時(shí)通訊原理示意圖;圖2是本發(fā)明所述的即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)分發(fā)方法的數(shù)據(jù)流程圖; 圖3是本發(fā)明所述的即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)分發(fā)方法中取得監(jiān)控?cái)?shù)據(jù) 的數(shù)據(jù)流程圖;圖4是本發(fā)明所述的即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)分發(fā)裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
在結(jié)合具體實(shí)施例說(shuō)明本發(fā)明的方法和裝置之前,首先介紹一下IM的基 本結(jié)構(gòu)和原理,下面參考圖1對(duì)IM的技術(shù)原理進(jìn)行描述首先,用盧A輸入自己的用戶標(biāo)識(shí)和密碼登錄IM服務(wù)器,IM服務(wù)器通 過(guò)讀取用戶數(shù)據(jù)庫(kù)來(lái)驗(yàn)證用戶身份,如果用戶標(biāo)識(shí)、密碼都正確,就登記用戶 A的IP地址、IM客戶端軟件的版本號(hào)及使用的TCP/UDP端口號(hào),然后返回 用戶A登錄成功的標(biāo)志,此時(shí)用戶A在IM系統(tǒng)中的狀態(tài)為在線(Online Presence )。其次,根據(jù)用戶A存儲(chǔ)在IM服務(wù)器上的好友列表,服務(wù)器將用戶A在線 的相關(guān)信息發(fā)送到也同時(shí)在線的IM好友的PC機(jī),這些信息包括在線狀態(tài)、 IP地址、IM客戶端使用的TCP端口 (Port)號(hào)等,IM好友PC機(jī)上的IM客 戶端收到此信息后將在PC桌面上彈出一個(gè)小窗口予以提示。第三步是IM服務(wù)器把用戶A存儲(chǔ)在服務(wù)器上的好友列表及相關(guān)信息回送 到他的PC機(jī),這些信息包括在線狀態(tài)、IP地址、IM客戶端使用的TCP端口 (Port)號(hào)等信息,用戶A的PC機(jī)上的IM客戶端收到后將顯示這些好友列
表及其在線狀態(tài)。接下來(lái),如杲用戶A想給他的在線好友用戶B發(fā)送即時(shí)信息,他將直接 通過(guò)服務(wù)器發(fā)送過(guò)來(lái)的用戶B的IP地址、TCP端口號(hào)等信息,直接向用戶B 的PC機(jī)發(fā)出即時(shí)信息,用戶B的IM客戶端收到后顯示在屏幕上,然后用戶 B再直接回復(fù)到用戶A的PC機(jī),這樣雙方的即時(shí)信息就不通過(guò)IM服務(wù)器中 轉(zhuǎn),而是通過(guò)網(wǎng)絡(luò)進(jìn)行點(diǎn)對(duì)點(diǎn)的直接通訊,這稱為對(duì)等通訊方式(Peer To Peer),,另外,如果用戶A與用戶B的點(diǎn)對(duì)點(diǎn)通訊由于一方離線或由于防火墻、 網(wǎng)絡(luò)速度等原因難以建立時(shí),IM服務(wù)器還提供信息中轉(zhuǎn)服務(wù),即用戶A和用 戶B的即時(shí)信息全部先發(fā)送到IM服務(wù)器,再由服務(wù)器轉(zhuǎn)發(fā)給對(duì)方。以上對(duì)IM的基本原理進(jìn)行了介紹,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā) 明作進(jìn) 一 步詳細(xì)的i兌明。本發(fā)明通過(guò)周期性的檢查IM服務(wù)器的監(jiān)控?cái)?shù)據(jù),若發(fā)現(xiàn)監(jiān)控?cái)?shù)據(jù)異常, 就取得該異常信息,將其作為即時(shí)信息發(fā)送給相應(yīng)的一個(gè)或多個(gè)IM客戶端, 系統(tǒng)維護(hù)人員或相關(guān)用戶通過(guò)這些IM客戶端接收IM服務(wù)器的監(jiān)控?cái)?shù)據(jù)。優(yōu)選的,將上述接收服務(wù)器監(jiān)控?cái)?shù)據(jù)的IM客戶端所對(duì)應(yīng)的用戶標(biāo)識(shí)稱為 接收者標(biāo)識(shí),并將其存儲(chǔ)在IM服務(wù)器上。優(yōu)選的,通過(guò)一個(gè)獨(dú)立線程使用一 個(gè)已知用戶標(biāo)識(shí)登錄服務(wù)器(以下稱該線程為L(zhǎng)eader),并將所述接收者標(biāo)識(shí)作 為L(zhǎng)eader的好友。當(dāng)服務(wù)器的監(jiān)控?cái)?shù)據(jù)發(fā)生異常時(shí),檢驗(yàn)Leader的好友是客戶端。使用Leader發(fā)送IM服務(wù)器監(jiān)控?cái)?shù)據(jù)的異常信息只是本發(fā)明的優(yōu)選方法, 因?yàn)長(zhǎng)eader作為一個(gè)實(shí)時(shí)在線的用戶,在任何時(shí)候,如果有新的用戶端需要接 收IM服務(wù)器的監(jiān)控?cái)?shù)據(jù),都可以向Leader申請(qǐng)加入好友,如果加入成功,該IM 客戶端就可以接收來(lái)自IM服務(wù)器的監(jiān)控?cái)?shù)據(jù)。本發(fā)明優(yōu)選的,在通過(guò)IM客 戶端向Leader申請(qǐng)加入好友時(shí)需要提供特定的驗(yàn)證碼,用以保證接收監(jiān)控?cái)?shù) 據(jù)的用戶身份合法性。當(dāng)然,也可以不必將接收者加為L(zhǎng)eader的好友,而使用 其他方法將監(jiān)控?cái)?shù)據(jù)發(fā)送給IM客戶端,如向特定IM客戶端廣播的方式,本 發(fā)明對(duì)此不做限制,本領(lǐng)域的技術(shù)人員可根據(jù)需要選擇使用。
圖2示出了根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的用于IM服務(wù)器監(jiān)控?cái)?shù)據(jù)分發(fā)方 法的數(shù)據(jù)流程圖。下面參考圖2對(duì)該方法作詳細(xì)描述。步驟201: Leader根據(jù)配置信息與IM服務(wù)器建立連接并登錄服務(wù)器。IM服務(wù)器通常是由一個(gè)或多個(gè)服務(wù)器組成的服務(wù)器集群。Leader根據(jù)配 置文件取得其中一臺(tái)服務(wù)器『和端口與其建立連接,并使用相應(yīng)的用戶標(biāo)識(shí) 和密碼登錄該服務(wù)器。這樣,登錄成功后,Leader和一般的即時(shí)通訊用戶在 表現(xiàn)形式上并無(wú)區(qū)別,可以被別的用戶加為好友。優(yōu)選的,僅允許系統(tǒng)維護(hù)人 員根據(jù)leader的ID將leader加為自己的好友,特別的,系統(tǒng)維護(hù)人員在將 Leader添加為自己的好友時(shí)需要向系統(tǒng)提供驗(yàn)證碼,以保證用戶身份的合法 性,避免不相關(guān)的用戶與Leader進(jìn)行通信。步驟202: Leader檢查內(nèi)存中的監(jiān)控?cái)?shù)據(jù),如果發(fā)現(xiàn)監(jiān)控?cái)?shù)據(jù)中服務(wù)器 的狀態(tài)為不可用,執(zhí)行下面的步驟,否則;否則執(zhí)行步驟204。步驟203:從所述監(jiān)控?cái)?shù)據(jù)中取出該服務(wù)器不可用發(fā)生的時(shí)間以及該服務(wù) 器的IP,向Leader好友列表中的用戶發(fā)送一條警告消息服務(wù)器在某時(shí)某刻 開(kāi)始不可用;執(zhí)行步驟205。對(duì)于服務(wù)器集群中的每一臺(tái)服務(wù)器,都記錄有與其相應(yīng)的監(jiān)控?cái)?shù)據(jù)。在本 發(fā)明優(yōu)選的實(shí)施例中,該監(jiān)控?cái)?shù)據(jù)中主要包含以下內(nèi)容s6rverN3me〃服務(wù)器名serverIP〃服務(wù)器IPserverPort〃服務(wù)器端口Health〃服務(wù)器當(dāng)前是否健康last—err一time〃上次出錯(cuò)的時(shí)間Reported〃最近一次故障是否已發(fā)送給監(jiān)控?cái)?shù)據(jù)接收者lastFailDura〃上次故障持續(xù)時(shí)間failedCount〃總共故障次數(shù)dailyFailedCount〃當(dāng)天故障次數(shù)Leader檢查這些監(jiān)控?cái)?shù)據(jù),如果發(fā)現(xiàn)監(jiān)控?cái)?shù)據(jù)中服務(wù)器的狀態(tài)Health的 值置為0,即該服務(wù)器不可用,并且Reported的值為0,意思是尚未將該不 可用消息發(fā)送給Leader的好友,則從所述監(jiān)控?cái)?shù)據(jù)中取出該服務(wù)器不可用發(fā) 生的時(shí)間以及該服務(wù)器的IP,同時(shí),根據(jù)Leader好友列表中的用戶標(biāo)識(shí),檢 驗(yàn)其相應(yīng)的IM客戶端是否在線,若在線,取得該IM客戶端的地址信息,同 時(shí)向該IM客戶端發(fā)送一條警告消息服務(wù)器在某時(shí)某刻開(kāi)始不可用。系統(tǒng)維 護(hù)人員通過(guò)該IM客戶端接收來(lái)自Leader發(fā)送的警告消息。通過(guò)這種方式獲 取IM服務(wù)器的監(jiān)控?cái)?shù)據(jù),客戶端不但不需要任何額外的成本,而且不受空間 和時(shí)間的限制。系統(tǒng)維護(hù)人員可在任何時(shí)間和地點(diǎn),使用任何一種運(yùn)行有IM 客戶端的終端設(shè)備通過(guò)互聯(lián)網(wǎng)絡(luò)登錄服務(wù)器以獲取服務(wù)器的監(jiān)控?cái)?shù)據(jù)。本發(fā)明優(yōu)選的將監(jiān)控?cái)?shù)據(jù)存儲(chǔ)在內(nèi)存(Random Access Memory,也稱 隨機(jī)存取存儲(chǔ)器)中,Leader通過(guò)掃描內(nèi)存獲取發(fā)生變化的監(jiān)控?cái)?shù)據(jù),由于 通常情況下,掃描內(nèi)存響應(yīng)的時(shí)間只需幾個(gè)納秒,因此,若監(jiān)控?cái)?shù)據(jù)發(fā)生異常, Leader可在第一時(shí)間獲取該異常信息,然后將所述異常信息通過(guò)Leader的好 友發(fā)送給系統(tǒng)維護(hù)人員使用的IM客戶端。上述整個(gè)過(guò)程都是在瞬間完成的, 因此,系統(tǒng)維護(hù)人員可及時(shí)地響應(yīng)和處理服務(wù)器的故障以保障IM服務(wù)器的安 全、穩(wěn)定的運(yùn)行。步驟204:如果該服務(wù)器在上次檢查時(shí)的狀態(tài)為不可用,則從所述監(jiān)控?cái)?shù) 據(jù)中取出該服務(wù)器不可用發(fā)生的時(shí)間以及該服務(wù)器的IP,向Leader好友列表 中的用戶發(fā)送一條警告消息服務(wù)器在某時(shí)某刻已經(jīng)恢復(fù)為可用,此次不可用 的持續(xù)時(shí)間為X秒;否則,直接執(zhí)行步驟205。步驟205:如果檢查完所有的監(jiān)控?cái)?shù)據(jù),執(zhí)行下面的步驟;否則,執(zhí)行步 驟202。步驟206:等待下一個(gè)檢查周期開(kāi)始,執(zhí)行步驟202。 檢查周期可由系統(tǒng)的維護(hù)人員根據(jù)需要自己設(shè)定, 一般以即能及時(shí)反映內(nèi) 存中監(jiān)控?cái)?shù)據(jù)的變化,又不應(yīng)響IM服務(wù)器的性能為準(zhǔn),如根據(jù)人的反應(yīng)時(shí)間, 可將檢查監(jiān)控?cái)?shù)據(jù)的時(shí)間間隔設(shè)置為1秒或更短。另外,除以上所述的通過(guò)leader向IM客戶端發(fā)送監(jiān)控?cái)?shù)據(jù)的方式以外, 應(yīng)用本發(fā)明,系統(tǒng)維護(hù)人員還可以主動(dòng)查詢的方式從服務(wù)器獲取監(jiān)控?cái)?shù)據(jù)系 統(tǒng)維護(hù)人員按照預(yù)先約定的命令,通過(guò)IM客戶端向Leader發(fā)送查詢請(qǐng)求, 如get last error,意思是請(qǐng)求得到所有IM服務(wù)器上次出錯(cuò)的時(shí)間,Leader根 據(jù)上述請(qǐng)求掃描內(nèi)存取得相應(yīng)的監(jiān)控?cái)?shù)據(jù)并返回給該IM客戶端。
以上對(duì)本發(fā)明公開(kāi)的IM服務(wù)器監(jiān)控?cái)?shù)據(jù)的分發(fā)方法進(jìn)行了描述,與此同 時(shí),本發(fā)明優(yōu)選的通過(guò)使用用戶標(biāo)識(shí)分別登錄服務(wù)器集群中的服務(wù)器,根據(jù)登 錄過(guò)程和結(jié)果產(chǎn)生各服務(wù)器的監(jiān)控?cái)?shù)據(jù)。下面參考圖3,對(duì)該過(guò)程作進(jìn)一步詳纟田4苗ii。步驟301:根據(jù)預(yù)先設(shè)置的頂服務(wù)器集群中各服務(wù)器的配置信息,使用 不同的線程建立與每臺(tái)被監(jiān)控服務(wù)器的連接,同時(shí)使用不同的用戶標(biāo)識(shí)向各服 務(wù)器發(fā)起登錄請(qǐng)求。本發(fā)明優(yōu)選的通過(guò)一個(gè)運(yùn)行在頂服務(wù)器上的監(jiān)控程序,使用不同的線程 (以下稱該線程為監(jiān)控者)和用戶標(biāo)識(shí)向各服務(wù)器發(fā)起登錄請(qǐng)求,根據(jù)登錄過(guò) 程和結(jié)果產(chǎn)生各服務(wù)器的監(jiān)控?cái)?shù)據(jù),本領(lǐng)域的技術(shù)人員在實(shí)施本發(fā)明時(shí)當(dāng)然不 必局限于此,例如可以使用 一個(gè)用戶標(biāo)識(shí)逐次向各服務(wù)器發(fā)起登錄請(qǐng)求的方式 記錄監(jiān)控?cái)?shù)據(jù),也可以由各服務(wù)器自己記錄自己的監(jiān)控?cái)?shù)據(jù),由監(jiān)控程序從各 服務(wù)器收集的方式,本發(fā)明對(duì)此并不作限制。所述配置信息一般由系統(tǒng)維護(hù)人員根據(jù)頂服務(wù)器集群中需要監(jiān)控的服務(wù) 器來(lái)設(shè)置,如服務(wù)器的1P、服務(wù)端口等。本發(fā)明優(yōu)選的以文本格式文件存儲(chǔ) 所述配置信息,并將該配置文件存儲(chǔ)在運(yùn)行監(jiān)控程序的服務(wù)器上,由于該服務(wù) 器和服務(wù)器集群同屬一個(gè)可信任的局域網(wǎng)內(nèi),因此,不存在任何安全問(wèn)題。采 用文本格式文件存儲(chǔ)配置信息,不但維護(hù)成本低,而且更有利于操作。下面, 以服務(wù)器集群中有2臺(tái)服務(wù)器需要監(jiān)控為例,對(duì)配置文件的內(nèi)容作進(jìn)一步說(shuō) 明[TEST—SERVER]SERVER—NO = 2 〃被監(jiān)控服務(wù)器的數(shù)量。 SERVER—IP—0=192.168.0.1 〃第一臺(tái)被監(jiān)控服務(wù)器的IP(寫(xiě)成名 字也可以,名字最終會(huì)被解析成IP)SERVER PORT 0=13000 〃第一臺(tái)被監(jiān)控服務(wù)器的端口SERVER—IP—1=192.168.0.2 SERVER—P〇RT_1=13000 [USER—IDS] USER ID 0=user1〃第二臺(tái)被監(jiān)控服務(wù)器的IP //第二臺(tái)被監(jiān)控服務(wù)器的端口〃監(jiān)控者1的用戶標(biāo)識(shí)M D—5—PASS WD—0=YTkx C〇NTACT—ID0= helinqiang USER—ID—1=user2 MD丄PASSWD—1 =Uik6 CONTACT—ID——1= helinqiang [LEADER—ID] USER」D=test10051 MD—5—PASSWD=000000 SERVER—IP = 192.168.0.1 SERVER—PORT = 13000 [BASIC]ONLINE INTERVAL二6000〃監(jiān)控者1的登錄密碼 〃登錄后測(cè)試消息接收者的ID〃Leader的登錄id〃經(jīng)MD5算法加密的登錄密碼 〃Leader連往服務(wù)器的IP〃服務(wù)器端口〃監(jiān)控者登錄服務(wù)器后,在上面的滯留SENDJMJNTERVAL=3000 〃監(jiān)控者的登錄服務(wù)器后發(fā)送測(cè)試消息的間隔時(shí)間。當(dāng)監(jiān)控程序運(yùn)行時(shí),首先,監(jiān)控者1從所述配置文件中讀出要監(jiān)控服務(wù)器 的IP地址SERVER—IP—0和服務(wù)端口 SERVER—PORT—0并建立連接;然后, 從配置文件中取得相應(yīng)的用戶標(biāo)識(shí)USERJD一0和密碼MD—5—PASSWD—0向被監(jiān)控服務(wù)器發(fā)送登錄請(qǐng)求。同時(shí),監(jiān)控者2按照同樣的步驟向被監(jiān)控服務(wù)步驟302:若登錄失敗,更新監(jiān)控?cái)?shù)據(jù)后重新登錄;否則執(zhí)行下面的步驟。若登錄請(qǐng)求失敗,監(jiān)控者將Health的值置為0,表示該服務(wù)器不可用, 將last—e「r—time置為當(dāng)前時(shí)間,然后重新登錄。步驟303:在該服務(wù)器的監(jiān)控?cái)?shù)據(jù)中檢驗(yàn)該服務(wù)器的當(dāng)前狀態(tài)標(biāo)記是否可 用,若不可用,更新監(jiān)控?cái)?shù)據(jù)后執(zhí)行下面的步驟;否則,直接執(zhí)行下面的步驟。服務(wù)器的當(dāng)前狀態(tài)標(biāo)記為不可用,意思是成功登錄該服務(wù)器之前,監(jiān)控?cái)?shù) 據(jù)中該服務(wù)器的當(dāng)前狀態(tài)標(biāo)識(shí)還是不可用狀態(tài),這意味著在前一次登錄時(shí)該服 務(wù)器還不可用,而本次成功登錄,這意味著該服務(wù)器由不可用變?yōu)榱丝捎?,?br>
此,登錄成功后,需要將監(jiān)控?cái)?shù)據(jù)中該服務(wù)器的Health的值置為l。步驟304:根據(jù)設(shè)定的時(shí)間間隔發(fā)送測(cè)試消息,若發(fā)送成功,執(zhí)行步驟305,否則執(zhí)行歩驟306。步驟305:是否完成設(shè)置的滯留時(shí)間,若完成執(zhí)行步驟307,否則,重新 執(zhí)行步驟304。監(jiān)控者登錄服務(wù)器后,按照配置文件中的測(cè)試消息時(shí)間間隔 SENDJM——INTERVAL向測(cè)試消息的接收者contacted發(fā)送測(cè)試消息,在本實(shí) 施例中,該時(shí)間間隔為3000(ms)。若發(fā)送成功,等待3000ms后重新發(fā)送, 直到完成所設(shè)置的滯留時(shí)間ONLINE—INTERVAL,即6000ms后登出服務(wù)器并重新登錄。步驟306:更新監(jiān)控?cái)?shù)據(jù),將該服務(wù)器的狀態(tài)標(biāo)記為不可用后執(zhí)行步驟307。若測(cè)試消息發(fā)送失敗,說(shuō)明雖然可以成功登錄服務(wù)器,但是運(yùn)行在該服務(wù) 器之上的IM服務(wù)程序卻無(wú)法正常工作。因此,監(jiān)控者更新監(jiān)控?cái)?shù)據(jù),將該服 務(wù)器標(biāo)記為不可用。步驟307:登出服務(wù)器,并重新向服務(wù)器發(fā)起登錄請(qǐng)求。以上,結(jié)合具體實(shí)施例描述了本發(fā)明的 一種即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的分 發(fā)方法。參照以上有關(guān)本發(fā)明的介紹,如圖4所示,是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí) 施例的用于即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)分發(fā)裝置的方框圖,所述裝置包括收集單元401,用于使用用戶標(biāo)識(shí)向即時(shí)通訊服務(wù)器發(fā)送登錄請(qǐng)求并根據(jù) 登錄請(qǐng)求的結(jié)果產(chǎn)生監(jiān)控?cái)?shù)據(jù),所述用戶標(biāo)識(shí)用于在即時(shí)通訊系統(tǒng)中進(jìn)行即時(shí) 通訊;第 一存儲(chǔ)單元402,用于存儲(chǔ)收集單元產(chǎn)生的監(jiān)控?cái)?shù)據(jù);第二存儲(chǔ)單元403,用于存儲(chǔ)預(yù)先設(shè)置的IM服務(wù)器集群中各服務(wù)器的配 置信息以及用于接收監(jiān)控?cái)?shù)據(jù)的接收者標(biāo)識(shí);監(jiān)控單元404,用于按照設(shè)定的時(shí)間間隔檢驗(yàn)第一存儲(chǔ)單元402中的監(jiān)控 數(shù)據(jù),若監(jiān)控?cái)?shù)據(jù)異常,取得該異常信息,所述異常信息包含與所述監(jiān)控?cái)?shù)據(jù) 相應(yīng)的即時(shí)通訊服務(wù)器的IP地址或名稱;查詢單元405,用于根據(jù)查詢請(qǐng)求從第一存儲(chǔ)單元402中取得監(jiān)控?cái)?shù)據(jù), 并將所述監(jiān)控?cái)?shù)據(jù)通過(guò)發(fā)送單元406發(fā)送給相應(yīng)的即時(shí)通訊客戶端;發(fā)送單元406,用于根據(jù)監(jiān)控單元404或查詢單元405的請(qǐng)求,將相應(yīng)的異常信息或監(jiān)控?cái)?shù)據(jù)作為即時(shí)消息發(fā)送給與所述接收者標(biāo)識(shí)相應(yīng)的IM客戶 端,所述IM客戶端用于呈現(xiàn)即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù);更新單元407,用于更新第一存儲(chǔ)單元402中監(jiān)控?cái)?shù)據(jù)的發(fā)送標(biāo)記。收集單元401從第二存儲(chǔ)單元402中取得即時(shí)通訊服務(wù)器集群中各服務(wù) 器的配置信息,包括服務(wù)器的IP和通訊端口,然后分別與各服務(wù)器建立連接, 并使用不同的用戶標(biāo)識(shí)和密碼登錄該服務(wù)器,若登錄失敗,在第一存儲(chǔ)單402 元相應(yīng)的監(jiān)控?cái)?shù)據(jù)中將該服務(wù)器標(biāo)記為不可用,同時(shí)記錄不可用發(fā)生的時(shí)間以 及其他信息后重新登錄該服務(wù)器;若登錄成功,按照設(shè)定的時(shí)間間隔,發(fā)送測(cè) 試消息,如果發(fā)送成功,在完成設(shè)定的發(fā)送次數(shù)后登出并重新登錄該服務(wù)器, 否則,在第一存儲(chǔ)單元402相應(yīng)的監(jiān)控?cái)?shù)據(jù)中標(biāo)記該服務(wù)器為不可用后登出 并重新登錄。在上述過(guò)程中,服務(wù)器的狀態(tài)發(fā)生任何變化,如由可用變?yōu)椴豢?用,不可用變?yōu)榭捎枚紩?huì)在監(jiān)控?cái)?shù)據(jù)中記錄下來(lái)。與此同時(shí),監(jiān)控單元404按照設(shè)定的時(shí)間間隔,檢驗(yàn)第 一存儲(chǔ)單402元 中各服務(wù)器相應(yīng)的監(jiān)控?cái)?shù)據(jù),若發(fā)現(xiàn)數(shù)據(jù)異常,就取得該異常信息;所述發(fā)送 單元根據(jù)第二存儲(chǔ)單元403中的接收者標(biāo)識(shí)判斷與所述接收者標(biāo)識(shí)相應(yīng)的IM 客戶端是否登錄即時(shí)通訊服務(wù)器,若已登錄,從第二存儲(chǔ)單元403中取得該 IM客戶端的地址信息,并將監(jiān)控單元404取得的異常信息發(fā)送給該IM訊客 戶端;更新單元407更新第一存儲(chǔ)單元402中監(jiān)控?cái)?shù)據(jù)的發(fā)送標(biāo)記,用以說(shuō) 明該監(jiān)控?cái)?shù)據(jù)的異常信息已經(jīng)發(fā)送給相應(yīng)的IM客戶端。另外,當(dāng)查詢單元405接收到查詢請(qǐng)求后,從第一存儲(chǔ)單元402中取得 相應(yīng)的監(jiān)控?cái)?shù)據(jù),并通過(guò)發(fā)送單元406將其發(fā)送給相應(yīng)的IM客戶端。以上對(duì)本發(fā)明所提供的一種即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的分發(fā)方法和裝置 進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡 述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí), 對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍 上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1、一種即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的分發(fā)方法,其特征在于,包括以下步驟分發(fā)器登錄在線;分發(fā)器按設(shè)定的時(shí)間間隔檢驗(yàn)即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù),若監(jiān)控?cái)?shù)據(jù)異常,則;分發(fā)器根據(jù)存儲(chǔ)的用于接收監(jiān)控?cái)?shù)據(jù)的接收者標(biāo)識(shí),將取得的異常信息作為即時(shí)信息發(fā)送給與所述接收者標(biāo)識(shí)相應(yīng)的一個(gè)或多個(gè)即時(shí)通訊客戶端;所述即時(shí)通訊客戶端用于呈現(xiàn)所述即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述分發(fā)器為一個(gè)即時(shí)通訊客戶端。
3、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括 預(yù)置查詢請(qǐng)求與操作命令的對(duì)應(yīng)關(guān)系,所述查詢請(qǐng)求為其他即時(shí)通訊客戶端發(fā)送的即時(shí)消息;根據(jù)查詢請(qǐng)求對(duì)應(yīng)的操作命令取得相應(yīng)的監(jiān)控?cái)?shù)據(jù),并將所述監(jiān)控?cái)?shù)據(jù)作 為即時(shí)信息發(fā)送給相應(yīng)的即時(shí)通訊客戶端。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述即時(shí)通訊服務(wù)器是由 一個(gè)或多個(gè)即時(shí)通訊服務(wù)器組成的服務(wù)器集群。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述監(jiān)控?cái)?shù)據(jù)存儲(chǔ)在隨機(jī) 存取存儲(chǔ)器中,所述隨機(jī)存取存儲(chǔ)器與所述分發(fā)器位于同一計(jì)算設(shè)備中。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括將所述異常信息 作為即時(shí)信息發(fā)送成功后,更新監(jiān)控?cái)?shù)據(jù)中的發(fā)送標(biāo)記。
7、 根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括根據(jù)預(yù)先設(shè)置的服務(wù)器集群中各即時(shí)通訊服務(wù)器的配置信息,使用不同的 用戶標(biāo)識(shí)向與其相應(yīng)的即時(shí)通訊服務(wù)器發(fā)送登錄請(qǐng)求,同時(shí)根據(jù)請(qǐng)求過(guò)程產(chǎn)生 與所述即時(shí)通訊服務(wù)器相應(yīng)的監(jiān)控?cái)?shù)據(jù),所述配置信息包含所述即時(shí)通訊服務(wù) 器的IP地址或名稱。
8、 一種即時(shí)通訊服務(wù)器監(jiān)控?cái)?shù)據(jù)的分發(fā)裝置,其特征在于,包括 第一存儲(chǔ)單元,用于存儲(chǔ)即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù); 第二存儲(chǔ)單元,用于存儲(chǔ)接收監(jiān)控?cái)?shù)據(jù)的接收者標(biāo)識(shí);監(jiān)控單元,用于按照設(shè)定的時(shí)間間隔檢驗(yàn)第一存儲(chǔ)單元中的監(jiān)控?cái)?shù)據(jù),若監(jiān)控?cái)?shù)據(jù)異常,取得該異常信息,所述異常信息包含與所述監(jiān)控?cái)?shù)據(jù)相應(yīng)的即時(shí)通訊服務(wù)器的IP地址或名稱;發(fā)送單元,用于根據(jù)所述監(jiān)控單元的請(qǐng)求,將相應(yīng)的異常信息作為即時(shí)信 息發(fā)送給與所述第二存儲(chǔ)單元的接收者標(biāo)識(shí)相應(yīng)的即時(shí)通訊客戶端,所述即時(shí) 通訊客戶端用于呈現(xiàn)即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù)。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括查詢單元,用于根據(jù)查詢請(qǐng)求對(duì)應(yīng)的操作命令從所述第一存儲(chǔ)單元中取得二山 乂而。
10、 根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述第一存儲(chǔ)單元 是隨機(jī)存取存儲(chǔ)器或具有相應(yīng)功能的存儲(chǔ)介質(zhì)。
11、 根據(jù)權(quán)利要求10所述的裝置,其特征在于,還包括 更新單元,用于更新第一存儲(chǔ)單元中監(jiān)控?cái)?shù)據(jù)的發(fā)送標(biāo)記。
12、 根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括收集單元,用于使用用戶標(biāo)識(shí)向所述服務(wù)器集群中的一個(gè)或多個(gè)即時(shí)通訊 服務(wù)器發(fā)送登錄請(qǐng)求,并根據(jù)請(qǐng)求過(guò)程產(chǎn)生與所述即時(shí)通訊服務(wù)器相應(yīng)的監(jiān)控 數(shù)據(jù),所述監(jiān)控?cái)?shù)據(jù)存儲(chǔ)在所述第一存儲(chǔ)單元中。
全文摘要
本發(fā)明公開(kāi)了一種即時(shí)通訊服務(wù)器的分發(fā)方法和裝置,所述方法包括分發(fā)器登錄在線;分發(fā)器接設(shè)定的時(shí)間間隔檢驗(yàn)即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù),若監(jiān)控?cái)?shù)據(jù)異常,則;分發(fā)器根據(jù)存儲(chǔ)的用于接收監(jiān)控?cái)?shù)據(jù)的接收者標(biāo)識(shí),將取得的異常信息作為即時(shí)信息發(fā)送給與所述接收者標(biāo)識(shí)相應(yīng)的一個(gè)或多個(gè)即時(shí)通訊客戶端;所述即時(shí)通訊客戶端用于呈現(xiàn)所述即時(shí)通訊服務(wù)器的監(jiān)控?cái)?shù)據(jù)。這樣,系統(tǒng)維護(hù)人員使用即時(shí)通訊客戶端,在不增加成本的情況下就可在第一時(shí)間獲得服務(wù)器的監(jiān)控?cái)?shù)據(jù),并進(jìn)一步降低了服務(wù)器的負(fù)荷。
文檔編號(hào)H04L12/58GK101155147SQ20061012708
公開(kāi)日2008年4月2日 申請(qǐng)日期2006年9月26日 優(yōu)先權(quán)日2006年9月26日
發(fā)明者何林強(qiáng), 孔勇偉 申請(qǐng)人:阿里巴巴公司