專利名稱:用于刀片服務器的前后臺通信方法及裝置的制作方法
技術領域:
本發(fā)明涉及通信領域,具體而言,尤其涉及一種用于刀片服務 器的前后臺通信方法及裝置。
背景技術:
因業(yè)務環(huán)境的需要和操作維護的方便,刀片服務器中的前后臺 之間經常需要進4亍通信,如凄史據同步、調試、通信i貪斷、日志和凄t 據備份、人機命令交互等。
在現(xiàn)有技術中,用于刀片服務器的前后臺通信方法中,后臺客 戶端的各個管理模塊與前臺的各個刀片直接建立鏈路以進行點對點 通信,當后臺的管理模塊及前臺的刀片數量較大時,將導致對刀片 服務器中前后臺之間的通信參數配置繁瑣。
發(fā)明內容
本發(fā)明的目的在于提供一種用于刀片服務器的前后臺通信方法 及裝置,能夠解決相關技術中在后臺的管理模塊及前臺的刀片數量 較大時,導致的對刀片服務器中前后臺之間的通信參數配置繁瑣的 」技術問題。根據本發(fā)明的一個方面,提供了一種用于刀片服務器的前后臺
通信裝置,包括前臺,其包括一個前臺通信模塊和多個刀片;后 臺,其包括一個后臺通信;漠塊和多個管理模塊;前臺通信^^塊和后 臺通信模塊相互連接,前臺通信模塊連接多個刀片,后臺通信沖莫塊 連接多個管理模塊;前臺通信模塊和后臺通信模塊用于轉發(fā)多個刀 片與多個管理模塊之間的數據和事件。
優(yōu)選地,前臺通信才莫塊包括第一事件池,用于存儲從多個刀 片或后臺通信模塊接收到的事件;第一消息隊列,用于存儲從多個 刀片或后臺通信模塊接收到的數據;輪詢池,用于查詢第一事件池 中的事件,并在查詢到事件時,觸發(fā)第一消息轉發(fā)單元對事件進4亍 處理;第一消息轉發(fā)單元,用于從第一消息隊列中的數據中提取目 的地址,并將第一事件池中的事件和第一消息隊列中的數據轉發(fā)到
目的;l也址對應的刀片或后臺通信;溪塊。
優(yōu)選地,多個刀片和前臺通信模塊的操作系統(tǒng)是Linux操作系 統(tǒng),輪詢池采用EPOIX/POLL接o 。
優(yōu)選地,前后臺通信裝置還包括激活才莫塊,用于激活輪詢池 每隔第一預定時間查詢第一事件池。優(yōu)選地,后臺通信模塊包括 第二事件池,用于存儲從多個管理模塊或前臺通信模塊接收到的事 件;第二消息隊列,用于存儲多個管理模塊或前臺通信模塊接收到 的數據;第二消息轉發(fā)單元,用于從第二消息隊列中的數據中提取 目的地址,并將第二事件池中的事件和第二消息隊列中的數據轉發(fā) 到目的地址對應的管理才莫塊或前臺通信模塊。
優(yōu)選地,后臺通信^莫塊還包括心跳保活單元,用于定期向前 臺通信模塊發(fā)送心跳?;顢祿?,并在在第二預定時間內未收到返回 的?;顢祿r,關閉鏈路,否則,則?;铈溌?。根據本發(fā)明的另 一方面,還提供了 一種用于刀片月良務器的前后
臺通信方法,包括在刀片服務器的前臺中設置一個前臺通信模塊, 并在刀片服務器的后臺中設置一個后臺通信模塊;利用前臺通信才莫 塊和后臺通信^t塊轉發(fā)前臺的多個刀片與后臺的多個管理才莫塊之間 的數據和事件,其中,前臺通信模塊和后臺通信模塊相互連接,前 臺通信模塊連接多個刀片,后臺通信模塊連接多個管理模塊。
優(yōu)選地,利用前臺通信模塊和后臺通信模塊轉發(fā)前臺的多個刀 片與后臺的多個管理模塊之間的數據和事件具體包括利用后臺通 信模塊中的第二事件池存儲從多個管理模塊接收到的事件;利用后 臺通信模塊中的第二消息隊列存儲多個管理模塊接收到的數據;利 用后臺通信模塊中的第二消息轉發(fā)單元從第二消息隊列中的數據中 提取目的地址,并將第二事件池中的事件和第二消息隊列中的凝:據 轉發(fā)到目的地址對應的前臺通信模塊;利用前臺通信模塊中的第一 事件池存儲從后臺通信模塊接收到的事件;利用前臺通信模塊中的 第 一 消息隊列存儲從后臺通信模塊接收到的數據;利用前臺通信模 塊中的4侖詢池查詢第一事件池中的事件,并在查詢到事件時,觸發(fā) 第一消息轉發(fā)單元對事件進行處理;利用第一消息轉發(fā)單元從第一 消息隊列中的數據中提取目的地址,并將第一事件池中的事件和第 一消息隊列中的數據轉發(fā)到目的地址對應的刀片。
優(yōu)選地,利用前臺通信模塊和后臺通信模塊轉發(fā)前臺的多個刀 片與后臺的多個管理模塊之間的數據和事件具體包括利用前臺通 信模塊中的第一事件池存儲從多個刀片接收到的事件;利用前臺通 信模塊中的第 一 消息隊列存儲從多個刀片接收到的數據;利用前臺 通信才莫塊中的^^詢池查詢第 一事件池中的事件,并在查詢到事件時, 觸發(fā)第一消息轉發(fā)單元對事件進行處理;利用第一消息轉發(fā)單元從 第一消息隊列中的數據中提取目的地址,并將第一事件池中的事件 和第一消息隊列中的數據轉發(fā)到目的地址對應的后臺通信模塊;利 用后臺通信模塊中的第二事件池存儲從前臺通信模塊接收到的事件;利用后臺通信模塊中的第二消息隊列存儲從前臺通信模塊接收 到的數據;利用后臺通信模塊中的第二消息轉發(fā)單元從第二消息隊 列中的數據中提取目的地址,并將第二事件池中的事件和第二消息 隊列中的數據轉發(fā)到目的地址對應的管理模塊。
優(yōu)選地,前后臺通信方法還包括利用激活才莫塊激活輪詢池每 隔第 一預定時間查詢第 一事件池。
優(yōu)選地,多個刀片和前臺通信模塊的操作系統(tǒng)是Linux操作系 統(tǒng),壽侖詢池采用EPOLL/POLL 4妻口 。
優(yōu)選地,前后臺通信方法還包括定期向前臺通信才莫塊發(fā)送心 跳?;顢祿蝗绻诘诙A定時間內未收到返回的?;顢祿?,則關 閉鏈路;否則,則保活鏈路。
借助于本發(fā)明的上述至少一個技術方案,通過在刀片服務器的 前臺的多個刀片和后臺的多個管理才莫塊之間增加相互連4妄的一個前 臺通信模塊和一個后臺通信模塊,使得后臺的服務器管理人員在需 要建立多個管理才莫塊和多個刀片之間的通信鏈路時,只需要在前臺 通信^t塊上配置后臺通信才莫塊的地址,以及在后臺通信才莫塊上配置 前臺通信模塊的地址,從而達到了使刀片服務器中前后臺之間的通 信參數配置簡單的技術效果。
附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部 分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的 限制。在附圖中
圖1示出了根據本發(fā)明第一實施例的用于刀片服務器的前后臺 通信裝置的方框圖;圖2是根據本發(fā)明第二實施例的根據本發(fā)明第一實施例的用于 刀片月良務器的前后臺通信方法的流程圖3是根據本發(fā)明第三實施例的用于刀片服務器的前后臺通信 方法的處理流^I圖4是根據本發(fā)明第四實施例的用于刀片服務器的前后臺通信 方法的處理流禾呈圖。
具體實施例方式
以下結合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此 處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本 發(fā)明。
在以下的描述中,為了解釋的目的,描述了多個特定的細節(jié), 以才是供對本發(fā)明的透徹理解。然而,4艮顯然,在沒有這些特定細節(jié) 的情況下,也可以實現(xiàn)本發(fā)明,此外,在不沖突的情況下,即在不 背離所附權利要求闡明的精神和范圍的情況下,下述實施例以及實 施例中的各個細節(jié)可以進行各種組合。
第一實施例
圖1示出了根據本發(fā)明第一實施例的用于刀片服務器的前后臺 通信裝置的方框圖。
如圖l所示,根據本發(fā)明第一實施例的用于刀片服務器的前后 臺通信裝置,包括前臺102,其包括一個前臺通信模塊1022和多 個刀片1024;后臺104,其包4舌一個后臺通信4莫塊1042和多個管理 模塊1044;前臺通信模塊1022和后臺通信模塊1042相互連接,前 臺通信才莫塊1022連4妾多個刀片1024,后臺通信才莫塊1042連接多個管理模塊1044;前臺通信模塊1022和后臺通信模塊1042用于轉發(fā) 多個刀片1024與多個管理才莫塊1044之間的豸丈據和事件。
根據本發(fā)明第一實施例的用于刀片服務器的前后臺通信裝置通 過在刀片服務器的前臺的多個刀片和后臺的多個管理模塊之間增加 相互連接的一個前臺通信模塊和一個后臺通信模塊,使得后臺的月良 務器管理人員在需要建立多個管理模塊和多個刀片之間的通信鏈路 時,只需要在前臺通信才莫塊上配置后臺通信才莫塊的地址,以及在后 臺通信模塊上配置前臺通信模塊的地址,從而達到了使刀片服務器 中前后臺之間的通信參數配置簡單的技術效果。
例如,需要將數據和事件從后臺的管理模塊發(fā)送到前臺的某一 個刀片上時,管理模塊只需要將數據和事件發(fā)送到后臺通信模塊上, 然后后臺通信模塊將該數據和事件轉發(fā)到前臺的前臺通信模塊上, 前臺通信模塊將從數據中提取目的地址,以將數據轉發(fā)到相應的刀 片。將數據和事件從前臺的刀片發(fā)送到后臺的某一管理才莫塊的過程 為相反的過程,不再詳細描述。
優(yōu)選地,前臺通信模塊包括第一事件池,用于存儲從多個刀 片或后臺通信模塊接收到的事件;第一消息隊列,用于存儲從多個 刀片或后臺通信模塊接收到的數據;輪詢池,用于查詢第一事件池 中的事件,并在查詢到事件時,觸發(fā)第一消息轉發(fā)單元對事件進行 處理;第一消息轉發(fā)單元,用于從第一消息隊列中的數據中提取目 的地址,并將第一事件池中的事件和第一消息隊列中的彩:據轉發(fā)到 目的地址對應的刀片或后臺通信才莫塊。
前臺通信模塊是TCPServer服務器通信模塊,該才莫塊位于前臺 的某一塊管理刀片上,承載前臺刀片與后臺消息通信轉發(fā)的功能模 塊,用于接收匯總轉發(fā)后臺管理模塊與前臺刀片間的通信消息,并 將來自后臺通信模塊的消息轉發(fā)至相應的前臺刀片,或接收前臺刀片發(fā)送至后臺的消息,并轉發(fā)給后臺通信模塊,該;f莫塊還用于接收
多個TCPClient后臺TCP客戶端的注冊、管理和保活套接字鏈路等。
在前臺通信才莫塊中,還可以包括鏈路初始化才莫塊,以完成通4言 鏈路初始化和通信鏈路的數據區(qū)分配,并用于聲明TCP通信的第一 事件池,根據后臺客戶端注冊的最大鏈路數來設置第 一事件池的大 小、聲明用于TCP通信鏈路使用的注冊事件、聲明用于存儲通信回 傳處理事件的數據區(qū)、聲明用于處理接受TCP連接專用的文件描述 符、創(chuàng)建用于TCP偵聽的服務端套接字、設置第一消息轉發(fā)單元要 處理的事件相關的文件描述符、設置輪詢池要處理的事件類型、并 將偵聽套《^妄字加入到第 一消息轉發(fā)單元中。
第一消息轉發(fā)單元用于在第一事件池中有事件發(fā)生時,根據事 件類型來確定處理流程。第一事件池中的事件類型分為l)偵聽事 件,表示可接受連接;2)可讀事件,用于在鏈路上發(fā)生可讀事件; 3)可寫事件,用于在鏈路上發(fā)生可寫事件。如果第一事件池中的事 件是可接受連接,則第一消息轉發(fā)單元找到空閑鏈路,并建立新鏈 接,然后設置用于讀操作的文件描述符,再設置用于讀操作的事件, 并4巴該連接加入到第一消息轉發(fā)單元中;如果第一事件池中的事件 是可讀事件,則第一消息轉發(fā)單元檢查數據區(qū)是否正常,并將數據 轉發(fā)到刀片中;如果第一事件池中的事件是可寫事件,則完成發(fā)送 鏈路上的數據的處理過程。
可選地,第一消息轉發(fā)單元還可以包括發(fā)送處理子單元、#^欠 處理子單元、和廣播處理子單元。發(fā)送處理子單元4艮據其他刀片傳 遞過來的鏈路號,找到指定鏈路,查看該鏈路發(fā)送消息隊列頭,如 果隊列頭消息為空,則將該消息放入隊列頭;否則如果消息隊列中 已經有消息存在,則將消息拷貝到消息緩沖區(qū)中,如果緩沖區(qū)滿, 則消息指針加一;消息入隊列后,則設置寫操作符,設置寫操作事 件,用于觸發(fā)4侖詢池4全測發(fā)送消息隊列,實際的消息發(fā)送由輪詢池完成;接收處理子單元接收鏈路傳送過來的消息后,解析消息,提 取消息中的目的地地址消息,將消息轉發(fā)到相應的刀片中;廣4番處 理子單元,用于在發(fā)送廣播消息時,循環(huán)檢測鏈路數據區(qū)中的鏈路 號,若鏈路為正常狀態(tài),則將消息通過發(fā)送處理子單元將消息發(fā)送 出去。
優(yōu)選地,多個刀片和前臺通信模塊的操作系統(tǒng)是Linux操作系 統(tǒng),輪詢池釆用EPOIX/POIX接口 。
通常,刀片服務器中各刀片的操作系統(tǒng)均采用穩(wěn)定性高的 Linux操作系統(tǒng),EPOLL/POLL接口是一種嵌入實時系統(tǒng)如Linux 系統(tǒng)中的事件查詢4妄口 ,以EPOLL/POLL 4妻口代替?zhèn)鹘y(tǒng)查詢 SELECT接口 (一種通用的事件查詢接口 ),使得本發(fā)明實施例能夠 支持大量的并發(fā)客戶端連接??蛇x地,各個刀片的操作系統(tǒng)和前臺 通信模塊的操作系統(tǒng)也可以是VxWoks 、 Windows等操作系統(tǒng)。
優(yōu)選地,前后臺通信裝置還包括激活模塊,用于激活輪詢池 每隔第 一 預定時間查詢第 一 事件池。
當沒有收發(fā)及建鏈事件發(fā)生時,相關技術中的輪詢池會保持不 動,4艮據本發(fā)明實施例的前后臺通信裝置此時通過激活才莫塊通過內 部環(huán)回地址(LocalHost)發(fā)送激活消息以觸發(fā)壽侖詢池每隔第一預定 時間查詢第 一事^f牛池以^f呆持輪詢池以予貞定時間查詢第一事4牛池???選地,激活才莫塊也可以創(chuàng)建自動激活的套接字來激活輪詢池每隔第 一預定時間查詢第一事件池。其中,第一預定時間可以為例如十毫 秒。
優(yōu)選地,后臺通信模塊包括第二事件池,用于存儲從多個管 理模塊或前臺通信模塊接收到的事件;第二消息隊列,用于存儲多 個管理模塊或前臺通信模塊接收到的數據;第二消息轉發(fā)單元,用于從第二消息隊列中的數據中提取目的地址,并將第二事件池中的 事件和第二消息隊列中的數據轉發(fā)到目的地址對應的管理才莫塊或前 臺通信模塊。
后臺通信模塊是實現(xiàn)TCPClient客戶端通信的才莫塊??蛇x地, 在后臺通信才莫塊中還可以包括通信初始化才莫塊,用于完成進程間通 信初始化和進程間通信數據區(qū)分配、聲明用于進程間通信的注冊事 件、聲明用于存儲通信回傳處理事件的數據區(qū)、創(chuàng)建指定刀片服務 器TCP發(fā)送的客戶端套接字等。
第二消息轉發(fā)單元在第二事件池中有事件發(fā)生時,根據事件不 同的目的地地址來分發(fā)處理,若目的地為后臺,則通過進程間通4言 將數據和事件轉發(fā)出去;若目的地為前臺,通過套接字將消息轉發(fā) 給前臺通信模塊。
優(yōu)選地,后臺通信模塊還包括心跳?;顔卧糜诙ㄆ谙蚯?臺通信模塊發(fā)送心跳?;顢祿?,并在在第二預定時間內未收到返回 的保活數據時,關閉鏈路,否則,則?;铈溌?。
根據本發(fā)明第 一實施例的用于刀片服務器的前后臺通信裝置通 過在刀片服務器的前臺的多個刀片和后臺的多個管理模塊之間增加 相互連接的一個前臺通信模塊和一個后臺通信沖莫塊,使得后臺的服 務器管理人員在需要建立多個管理模塊和多個刀片之間的通信鏈路 時,只需要在前臺通信模塊上配置后臺通信模塊的地址,以及在后 臺通信模塊上配置前臺通信模塊的地址,從而達到了使刀片服務器 中前后臺之間的通信參數配置簡單的技術效果。
第二實施例
圖2是根據本發(fā)明第二實施例的根據本發(fā)明第一實施例的用于 刀片服務器的前后臺通信方法的流程圖。如圖2所示,根據本發(fā)明第二實施例的根據本發(fā)明第一實施例 的用于刀片服務器的前后臺通信方法包括
步驟S202,在刀片服務器的前臺中設置一個前臺通信模塊,并 在刀片服務器的后臺中設置一個后臺通信模塊;
步驟S204,利用前臺通信模塊和后臺通信模塊轉發(fā)前臺的多個 刀片與后臺的多個管理模塊之間的數據和事件,其中,前臺通信模
塊和后臺通信模塊相互連接,前臺通信模塊連接多個刀片,后臺通 信模塊連接多個管理模塊。
才艮據本發(fā)明第二實施例的用于刀片月良務器的前后臺通信方法通 過在刀片服務器的前臺的多個刀片和后臺的多個管理模塊之間增加 相互連接的一個前臺通信模塊和一個后臺通信模塊,使得后臺的服 務器管理人員在需要建立多個管理模塊和多個刀片之間的通信鏈路 時,只需要在前臺通信模塊上配置后臺通信模塊的地址,以及在后 臺通信模塊上配置前臺通信模塊的地址,從而達到了使刀片服務器 中前后臺之間的通信參數配置簡單的技術效果。
優(yōu)選地,在從后臺管理模塊向前臺刀片發(fā)送數據時,利用前臺 通信模塊和后臺通信模塊轉發(fā)前臺的多個刀片與后臺的多個管理模 塊之間的數據和事件具體包括利用后臺通信模塊中的第二事件池 存儲從多個管理才莫塊接收到的事件;利用后臺通信才莫塊中的第二消 息隊列存儲多個管理模塊接收到的數據;利用后臺通信模塊中的第 二消息轉發(fā)單元從第二消息隊列中的數據中提取目的地址,并將第 二事件池中的事件和第二消息隊列中的數據轉發(fā)到目的地址對應的 前臺通信模塊;利用前臺通信模塊中的第一事件池存儲從后臺通信 模塊接收到的事件;利用前臺通信模塊中的第 一消息隊列存儲從后 臺通信模塊接收到的數據;利用前臺通信模塊中的輪詢池查詢第一 事件池中的事件,并在查詢到事件時,觸發(fā)第一消息轉發(fā)單元對事件進行處理;利用第 一消息轉發(fā)單元從第 一消息隊列中的數據中提 取目的地址,并將第一事件池中的事件和第一消息隊列中的數據轉 發(fā)到目的地址對應的刀片。
第一消息轉發(fā)單元用于在第一事件池中有事件發(fā)生時,才艮據事 件類型來確定處理流程。第二消息轉發(fā)單元在第二事件池中有事件 發(fā)生時,根據事件不同的目的地地址來分發(fā)處理,若目的地為后臺, 則通過進程間通信將數據和事件轉發(fā)出去;若目的地為前臺,通過 套接字將消息轉發(fā)給前臺通信模塊。
優(yōu)選地,在從前臺刀片向后臺管理模塊發(fā)送數據時,利用前臺 通信模塊和后臺通信模塊轉發(fā)前臺的多個刀片與后臺的多個管理才莫 塊之間的數據和事件具體包括利用前臺通信模塊中的第 一事件池 存儲從多個刀片接收到的事件;利用前臺通信模塊中的第 一消息隊 列存儲從多個刀片接收到的數據;利用前臺通信模塊中的輪詢池查 詢第一事件池中的事件,并在查詢到事件時,觸發(fā)第一消息轉發(fā)單 元對事件進行處理;利用第一消息轉發(fā)單元從第一消息隊列中的數 據中提取目的地址,并將第一事件池中的事件和第一消息隊列中的 數據轉發(fā)到目的地址對應的后臺通信模塊;利用后臺通信模塊中的 第二事件池存儲從前臺通信模塊接收到的事件;利用后臺通信模塊 中的第二消息隊列存儲從前臺通信模塊接收到的數據;利用后臺通 信模塊中的第二消息轉發(fā)單元從第二消息隊列中的數據中提取目的 地址,并將第二事件池中的事件和第二消息隊列中的數據轉發(fā)到目 的地址對應的管理#莫塊。
優(yōu)選地,前后臺通信方法還包括利用激活;漠塊激活4侖詢池每 隔第 一預定時間查詢第 一事件池。通過激活;模塊激活輪詢池每隔第 一預定時間查詢第一事件池,以防止在第一事件池出現(xiàn)異常時導致斷鏈。優(yōu)選地,多個刀片和前臺通信模塊的操作系統(tǒng)是Linux操作系 統(tǒng),輪詢池采用EPOLL/POLL 4妾口 。
通常,刀片服務器中各刀片的操作系統(tǒng)均采用穩(wěn)定性高的 Linux操作系統(tǒng),EPOLL/POLL接口是一種嵌入實時系統(tǒng)如Linux 系統(tǒng)中的事件查詢^接口,以EPOLL/POLL 4妾口^替?zhèn)鹘y(tǒng)查詢 SELECT接口 (一種通用的事件查詢接口 ),使得本發(fā)明實施例能夠 支持大量的并發(fā)客戶端連接??蛇x地,各個刀片的操作系統(tǒng)和前臺 通信模塊的操作系統(tǒng)也可以是VxWoks 、 Windows等才喿作系統(tǒng)。
優(yōu)選地,前后臺通信方法還包括定期向前臺通信才莫塊發(fā)送心 跳?;顢祿蝗绻诘诙A定時間內未收到返回的?;顢祿?,則關 閉鏈路;否則,則保活鏈路。以達到?;铈溌返哪康摹?br>
根據本發(fā)明第二實施例的用于刀片服務器的前后臺通信方法通 過在刀片服務器的前臺的多個刀片和后臺的多個管理模塊之間增加 相互連接的一個前臺通信模塊和一個后臺通信模塊,使得后臺的服 務器管理人員在需要建立多個管理模塊和多個刀片之間的通信鏈路 時,只需要在前臺通信模塊上配置后臺通信模塊的地址,以及在后 臺通信模塊上配置前臺通信模塊的地址,從而達到了使刀片服務器 中前后臺之間的通信參數配置簡單的技術效果。
第三實施例
圖3是根據本發(fā)明第三實施例的用于刀片服務器的前后臺通信 方法的處理流程圖。如圖3所示,根據本發(fā)明第三實施例的用于刀 片月艮務器的前后臺通信方法包4舌以下步驟
步駛《S302,啟動后臺ii/f言初始化沖莫塊,向前臺發(fā)送建鏈i青求, 前臺通信模塊的輪詢池對建鏈請求產生響應,觸發(fā)第 一消息轉發(fā)單元對產生的可接收連接請求事件進行處理,將該事件放入輪詢池中,
并插入輪詢表中的索引表項為套接字描述符,以提高檢索效率;
步驟S304,通過后臺通信模塊中的第二消息轉發(fā)單元對后臺管 理模塊發(fā)送給前臺刀片的消息轉發(fā)給前臺通信模塊,其中,該轉發(fā) 是通過套接字的轉發(fā)來實現(xiàn)的;前臺通信模塊中的輪詢池檢測到事 件后,觸發(fā)該事件,并通過接收處理子單元,將消息解析并轉發(fā)給 前臺其他刀片;
步驟S306,對于前臺刀片發(fā)送給后臺管理模塊的消息,則由前 臺刀片將消息發(fā)送到前臺通信模塊,通過前臺通信模塊中的發(fā)送處 理子單元完成消息的入隊和出隊,操作,然后由第一消息轉發(fā)單元完 成消息的發(fā)送和處理,將消息發(fā)送到后臺通信^^塊,再由后臺通信 模塊轉發(fā)給相應的后臺管理模塊。
在本實施例中,還可以在后臺和前臺之間進行正常的心跳和鏈 路?;?,并且,該鏈路?;钍峭ㄟ^定時發(fā)送消息來完成的。
根據本發(fā)明第三實施例的用于刀片服務器的前后臺通信方法通 過在刀片服務器的前臺的多個刀片和后臺的多個管理^t塊之間增加 相互連接的 一個前臺通信模塊和一個后臺通信模塊來轉發(fā)前臺和后 臺之間的數據和事件,從而達到了使刀片服務器中前后臺之間的通 信參數配置簡單的技術效果。
第四實施例
圖4是根據本發(fā)明第四實施例的用于刀片服務器的前后臺通信 方法的處理流程圖。如圖4所示,才艮據本發(fā)明第四實施例的用于刀 片服務器的前后臺通信方法包括以下步驟步驟401,后臺通信才莫塊向前臺通信才莫塊發(fā)起注冊:^青求,即在 TCP/IP層面上發(fā)起建鏈i青求;
步驟402,前臺通信模塊的輪詢池查詢到該事件時,觸發(fā)前臺 通信模塊根據后臺管理模塊的端口,為其分配一個長連接、組織鏈 ^各tt據區(qū)、并i殳置訪問索引,并在完成后響應后臺的建鏈i青求給后 臺返回一個注冊通過;
步驟403,建立正常的通信鏈路后,則開始在前后臺之間進4亍 消息交互,如后臺向前臺發(fā)送業(yè)務數據消息等;
步驟404,前臺通信才莫塊中的第一消息隊列和第一事件池開始 接收數據和事件,輪詢池在查詢到第一事件池中的事件時,觸發(fā)第 一消息轉發(fā)單元轉發(fā)數據到前臺刀片;刀片處理完成后,回復數據;
步驟405,前臺通信模塊接收到刀片發(fā)送來的數據后,根據鏈 路號,插入到相,的消息隊列中;
步驟406,前臺通信才莫塊中的^^詢池查詢第一事件池以觸發(fā)第 一消息轉發(fā)單元將數據轉發(fā)到后臺通信;漠塊。
步驟407:后臺通信模塊每隔一段時間向前臺通信才莫塊發(fā)送心 跳消息,以和前臺通信^t塊保持連接,如果前臺通信才莫塊在預定時 間內沒有收到后臺通信模塊發(fā)送的心跳消息,則可以主動斷開連接;
步驟408,執(zhí)行輪詢池的自動檢測,以防止通信任務異常的發(fā) 生和避免鏈路隊列中的消息出現(xiàn)過大的時延。
總之,根據本發(fā)明實施例的用于刀片服務器的前后臺通信裝置 和方法通過在刀片服務器的前臺的多個刀片和后臺的多個管理^f莫塊 之間增加相互連接的一個前臺通信模塊和一個后臺通信模塊,使得后臺的服務器管理人員在需要建立多個管理模塊和多個刀片之間的 通信鏈路時,只需要在前臺通信模塊上配置后臺通信模塊的地址, 以及在后臺通信模塊上配置前臺通信模塊的地址,從而達到了使刀 片服務器中前后臺之間的通信參數配置簡單的技術效果。
顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或 各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算 裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們 可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲
在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成 電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模 塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明, 對于本領i或的^支術人員來"i兌,本發(fā)明可以有各種更改和變4匕。凡在 本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等, 均應包含在本發(fā)明的4呆護范圍之內。
權利要求
1.一種用于刀片服務器的前后臺通信裝置,其特征在于,包括前臺,其包括一個前臺通信模塊和多個刀片;后臺,其包括一個后臺通信模塊和多個管理模塊;所述前臺通信模塊和所述后臺通信模塊相互連接,所述前臺通信模塊連接所述多個刀片,所述后臺通信模塊連接所述多個管理模塊;所述前臺通信模塊和所述后臺通信模塊用于轉發(fā)所述多個刀片與所述多個管理模塊之間的數據和事件。
2. 根據權利要求1所述的前后臺通信裝置,其特征在于,所述前 臺通信模塊包括第一事件池,用于存儲從所述多個刀片或所述后臺通信才莫 塊接收到的事件;第一消息隊列,用于存儲從所述多個刀片或所述后臺通信 模塊接收到的數據;輪詢池,用于查詢所述第一事件池中的事件,并在查詢到 所述事件時,觸發(fā)第一消息轉發(fā)單元對所述事件進行處理;所述第一消息轉發(fā)單元,用于從所述第一消息隊列中的數 據中提取目的地址,并將所述第一事件池中的事件和所述第一 消息隊列中的數據轉發(fā)到所述目的地址對應的刀片或所述后 臺通信模塊。
3. 根據權利要求2所述的前后臺通信裝置,其特征在于,所述多 個刀片和所述前臺通信模塊的操作系統(tǒng)是Linux才喿作系統(tǒng),所 述輪詢池采用EPOLL/POLL 4妾口 。
4. 根據權利要求3所述的前后臺通信裝置,其特征在于,還包4舌激活模塊,用于激活所述輪詢池每隔第一預定時間查詢所 述第一事件池。
5. 根據權利要求1所述的前后臺通信裝置,其特征在于,所述后 臺通信模塊包括第二事件池,用于存儲從所述多個管理模塊或所述前臺通 信模塊接收到的事件;第二消息隊列,用于存儲所述多個管理才莫塊或所述前臺通 信模塊接收到的數據;第二消息轉發(fā)單元,用于從所述第二消息隊列中的數據中 ^是取目的地址,并將所述第二事件池中的事件和所述第二消息 隊列中的數據轉發(fā)到所述目的地址對應的管理才莫塊或所述前 臺通信模塊。
6. 根據權利要求5所述的前后臺通信裝置,其特征在于,所述后 臺通信模塊還包括心跳?;顔卧?,用于定期向所述前臺通信才莫塊發(fā)送心返K果 活數據,并在在第二預定時間內未收到返回的?;顢祿r,關 閉鏈路,否則,則保活鏈路。
7. —種用于刀片服務器的前后臺通信方法,其特征在于,包括在刀片服務器的前臺中設置一個前臺通信模塊,并在所述 刀片服務器的后臺中設置一個后臺通信模塊;利用所述前臺通信模塊和所述后臺通信模塊轉發(fā)所述前 臺的多個刀片與所述后臺的多個管理模塊之間的數據和事件,其中,所述前臺通信模塊和所述后臺通信模塊相互連接, 所述前臺通信才莫塊連接所述多個刀片,所述后臺通信才莫塊連4妄 所述多個管理;漠塊。
8. 根據權利要求7所述的前后臺通信方法,其特征在于,利用所 述前臺通信模塊和所述后臺通信模塊轉發(fā)所述前臺的多個刀 片與所述后臺的多個管理沖莫塊之間的數據和事件具體包括利用所述后臺通信模塊中的第二事件池存儲從所述多個 管理模塊接收到的事件;利用所述后臺通信模塊中的第二消息隊列存儲所述多個 管理模塊接收到的數據;利用所述后臺通信模塊中的第二消息轉發(fā)單元從所述第 二消息隊列中的數據中提取目的地址,并將所述第二事件池中 的事件和所述第二消息隊列中的數據轉發(fā)到所述目的地址對 應的前臺通信模塊;利用所述前臺通信模塊中的第 一事件池存儲從所述后臺 通信模塊接收到的事件;利用所述前臺通信模塊中的第 一消息隊列存儲從所述后 臺通信模塊接收到的數據;利用所述前臺通信才莫塊中的輪詢池查詢所述第 一事件池 中的事件,并在查詢到所述事件時,觸發(fā)第一消息轉發(fā)單元對 所述事件進行處理;利用所述第一消息轉發(fā)單元從所述第一消息隊列中的彩: 據中4是取目的地址,并將所述第一事件池中的事件和所述第一 消息隊列中的數據轉發(fā)到所述目的地址對應的刀片。
9. 根據權利要求7所述的前后臺通信方法,其特征在于,利用所 述前臺通信模塊和所述后臺通信模塊轉發(fā)所述前臺的多個刀 片與所述后臺的多個管理才莫塊之間的數據和事件具體包括利用所述前臺通信模塊中的第 一事件池存儲從所述多個 刀片接收到的事件;利用所述前臺通信才莫塊中的第 一消息隊列存儲從所述多 個刀片接收到的數據;利用所述前臺通信模塊中的輪詢池查詢所述第 一事件池 中的事件,并在查詢到所述事件時,觸發(fā)第一消息轉發(fā)單元對 所述事件進4于處理;利用所述第 一消息轉發(fā)單元從所述第 一消息隊列中的教: 據中才是取目的地址,并將所述第一事件池中的事件和所述第一模塊; 、"' 、^、 、 ; 、、; 口利用所述后臺通信模塊中的第二事件池存儲從所述前臺 通信模塊接收到的事件;利用所述后臺通信模塊中的第二消息隊列存儲從所述前 臺通信模塊接收到的數據;利用所述后臺通信模塊中的第二消息轉發(fā)單元從所述第 二消息隊列中的數據中提取目的地址,并將所述第二事件池中 的事件和所述第二消息隊列中的數據轉發(fā)到所述目的地址對 應的管理纟莫塊。
10. #4居權利要求8或9所述的前后臺通信方法,其特4i在于,還 包括利用激活;溪塊激活所述^r詢池每隔第 一預定時間查詢所 述第一事件池。
11. 根據權利要求7所述的前后臺通信方法,其特征在于,所述多 個刀片和所述前臺通信模塊的操作系統(tǒng)是Linux操作系統(tǒng),所 述輪詢池采用EPOLL/POLL接口 。
12. 根據權利要求7所述的前后臺通信方法,其特征在于,還包4舌定期向所述前臺通信模塊發(fā)送心跳保活數據; 如果在第二預定時間內未收到返回的?;顢祿?,則關閉鏈路;否則,則^f呆活鏈i 各。
全文摘要
本發(fā)明公開了一種用于刀片服務器的前后臺通信裝置和方法,該裝置包括前臺,其包括一個前臺通信模塊和多個刀片;后臺,其包括一個后臺通信模塊和多個管理模塊;前臺通信模塊和后臺通信模塊相互連接,前臺通信模塊連接多個刀片,后臺通信模塊連接多個管理模塊;前臺通信模塊和后臺通信模塊用于轉發(fā)多個刀片與多個管理模塊之間的數據和事件。本發(fā)明實現(xiàn)了使刀片服務器中前后臺之間的通信參數配置簡單的技術效果。
文檔編號H04W24/02GK101610532SQ20091016076
公開日2009年12月23日 申請日期2009年7月15日 優(yōu)先權日2009年7月15日
發(fā)明者健 孫, 王家文, 韓建飛 申請人:中興通訊股份有限公司