HSF:High-speed Service Framework

主要做了以下方面:服務(wù)方式的遠(yuǎn)程調(diào)用;軟負(fù)載體系;服務(wù)可用性保障

spring-hessian

序列化方式一:Hessian 是由 caucho 提供的一個(gè)基于 binary-RPC 實(shí)現(xiàn)的遠(yuǎn)程通訊 library 。

   1 、是基于什么協(xié)議實(shí)現(xiàn)的 ?

            基于 Binary-RPC 協(xié)議實(shí)現(xiàn)。

   2 、怎么發(fā)起請求 ?

            需通過 Hessian 本身提供的 API 來發(fā)起請求。

   3 、怎么將請求轉(zhuǎn)化為符合協(xié)議的格式的 ?

            Hessian 通過其自定義的串行化機(jī)制將請求信息進(jìn)行序列化,產(chǎn)生二進(jìn)制流。

   4 、使用什么傳輸協(xié)議傳輸 ?

            Hessian 基于 Http 協(xié)議進(jìn)行傳輸。

   5 、響應(yīng)端基于什么機(jī)制來接收請求 ?

            響應(yīng)端根據(jù) Hessian 提供的 API 來接收請求。

   6 、怎么將流還原為傳輸格式的 ?

            Hessian 根據(jù)其私有的串行化機(jī)制來將請求信息進(jìn)行反序列化,傳遞給使用者時(shí)已是相應(yīng)的請求信息對象了。

   7 、處理完畢后怎么回應(yīng) ?

            處理完畢后直接返回, hessian 將結(jié)果對象進(jìn)行序列化,傳輸至調(diào)用端。

 

序列化方式二: Protocol buffer,Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages. You can even update your data structure without breaking deployed programs that are compiled against the "old" format.

 

 

遠(yuǎn)程調(diào)用:同步、單向異步、Future異步、Callback異步、可靠異步

 

負(fù)載均衡 : failover,隨機(jī)尋址,第七層路由,路由規(guī)則,權(quán)重規(guī)則

 

failover(故障轉(zhuǎn)移):In computing , failover is the capability to switch over automatically to a redundant or standbycomputer server , system , or network upon the failure or abnormal termination of the previously activeapplication ,[ 1] server, system, or network. Failover happens without human intervention and generally without warning, unlike switchover .

 

隨機(jī)尋址:

負(fù)載均衡策略

選擇合適的負(fù)載均衡策略,使多個(gè)設(shè)備能很好的共同完成任務(wù),消除或避免現(xiàn)有網(wǎng)絡(luò)負(fù)載分布不均、數(shù)據(jù)流量擁擠反應(yīng)時(shí)間長的瓶頸。在各負(fù)載均衡方式中,針對不同的應(yīng)用需求,在 OSI 參考模型的第二、三、四、七層的負(fù)載均衡都有相應(yīng)的負(fù)載均衡策略。 
負(fù)載均衡策略的優(yōu)劣及其實(shí)現(xiàn)的難易程度有兩個(gè)關(guān)鍵因素:一、負(fù)載均衡算法,二、對網(wǎng)絡(luò)系統(tǒng)狀況的檢測方式和能力。 
輪循均衡( Round Robin ): 每一次來自網(wǎng)絡(luò)的請求輪流分配給內(nèi)部中的服務(wù)器,從 1 至 N 然后重新開始。此種均衡算法適合于服務(wù)器組中的所有服務(wù)器都有相同的軟硬件配置并且平均服務(wù)請求相對均衡的情況。  
權(quán)重輪循均衡( Weighted Round Robin ): 根據(jù)服務(wù)器的不同處理能力,給每個(gè)服務(wù)器分配不同的權(quán)值,使其能夠接受相應(yīng)權(quán)值數(shù)的服務(wù)請求。例如:服務(wù)器 A 的權(quán)值被設(shè)計(jì)成 1 , B 的權(quán)值是 3 , C 的權(quán)值是 6 ,則服務(wù)器 A 、 B、 C 將分別接受到 10% 、 30 %、 60 %的服務(wù)請求。此種均衡算法能確保高性能的服務(wù)器得到更多的使用率,避免低性能的服務(wù)器負(fù)載過重。  
隨機(jī)均衡( Random ): 把來自網(wǎng)絡(luò)的請求隨機(jī)分配給內(nèi)部中的多個(gè)服務(wù)器。  
權(quán)重隨機(jī)均衡( Weighted Random ): 此種均衡算法類似于權(quán)重輪循算法,不過在處理請求分擔(dān)時(shí)是個(gè)隨機(jī)選擇的過程。  
響應(yīng)速度均衡( Response Time ): 負(fù)載均衡設(shè)備對內(nèi)部各服務(wù)器發(fā)出一個(gè)探測請求(例如 Ping ),然后根據(jù)內(nèi)部中各服務(wù)器對探測請求的最快響應(yīng)時(shí)間來決定哪一臺服務(wù)器來響應(yīng)客戶端的服務(wù)請求。此種均衡算法能較好的反映服務(wù)器的當(dāng)前運(yùn)行狀態(tài),但這最快響應(yīng)時(shí)間僅僅指的是負(fù)載均衡設(shè)備與服務(wù)器間的最快響應(yīng)時(shí)間,而不是客戶端與服務(wù)器間的最快響應(yīng)時(shí)間。 
最少連接數(shù)均衡( Least Connection ): 客 戶端的每一次請求服務(wù)在服務(wù)器停留的時(shí)間可能會有較大的差異,隨著工作時(shí)間加長,如果采用簡單的輪循或隨機(jī)均衡算法,每一臺服務(wù)器上的連接進(jìn)程可能會產(chǎn)生 極大的不同,并沒有達(dá)到真正的負(fù)載均衡。最少連接數(shù)均衡算法對內(nèi)部中需負(fù)載的每一臺服務(wù)器都有一個(gè)數(shù)據(jù)記錄,記錄當(dāng)前該服務(wù)器正在處理的連接數(shù)量,當(dāng)有新 的服務(wù)連接請求時(shí),將把當(dāng)前請求分配給連接數(shù)最少的服務(wù)器,使均衡更加符合實(shí)際情況,負(fù)載更加均衡。此種均衡算法適合長時(shí)處理的請求服務(wù),如 FTP 。 
處理能力均衡: 此種均衡算法將把服務(wù)請求分配給內(nèi)部中處理負(fù)荷(根據(jù)服務(wù)器 CPU 型號、 CPU 數(shù)量、內(nèi)存大小及當(dāng)前連接數(shù)等換算而成)最輕的服務(wù)器,由于考慮到了內(nèi)部服務(wù)器的處理能力及當(dāng)前網(wǎng)絡(luò)運(yùn)行狀況,所以此種均衡算法相對來說更加精確,尤其適合運(yùn)用到第七層(應(yīng)用層)負(fù)載均衡的情況下。 
DNS 
響應(yīng)均衡( Flash DNS ): 在 Internet 上,無論是 HTTP 、 FTP 或是其它的服務(wù)請求,客戶端一般都是通過域名解析來找到服務(wù)器確切的 IP 地址的。在此均衡算法下,分處在不同地理位置的負(fù)載均衡設(shè)備收到同一個(gè)客戶端的域名解析請求,并在同一時(shí)間內(nèi)把此域名解析成各自相對應(yīng)服務(wù)器的 IP 地址(即與此負(fù)載均衡設(shè)備在同一位地理位置的服務(wù)器的 IP 地址)并返回給客戶端,則客戶端將以最先收到的域名解析 IP 地址來繼續(xù)請求服務(wù),而忽略其它的 IP 地址響應(yīng)。在種均衡策略適合應(yīng)用在全局負(fù)載均衡的情況下,對本地負(fù)載均衡是沒有意義的。 

 

HSF 框架:OSGI,動(dòng)態(tài)部署;Core+Plugins 模式;動(dòng)態(tài)線程池

 

 

動(dòng)態(tài)線程池:Jini中的TaskManager

 

服務(wù)方式的遠(yuǎn)程調(diào)用:遠(yuǎn)程通信框架Mina,消息中間件Notify,序列化協(xié)議Hessian;跨語言協(xié)議XFire

Equinox

 

Mina通信

 

心跳機(jī)制

 

分享到: