HSF:High-speed Service Framework
主要做了以下方面:服務方式的遠程調用;軟負載體系;服務可用性保障
spring-hessian
序列化方式一:Hessian 是由 caucho 提供的一個基于 binary-RPC 實現的遠程通訊 library 。
1 、是基于什么協議實現的 ?
基于 Binary-RPC 協議實現。
2 、怎么發起請求 ?
需通過 Hessian 本身提供的 API 來發起請求。
3 、怎么將請求轉化為符合協議的格式的 ?
Hessian 通過其自定義的串行化機制將請求信息進行序列化,產生二進制流。
4 、使用什么傳輸協議傳輸 ?
Hessian 基于 Http 協議進行傳輸。
5 、響應端基于什么機制來接收請求 ?
響應端根據 Hessian 提供的 API 來接收請求。
6 、怎么將流還原為傳輸格式的 ?
Hessian 根據其私有的串行化機制來將請求信息進行反序列化,傳遞給使用者時已是相應的請求信息對象了。
7 、處理完畢后怎么回應 ?
處理完畢后直接返回, hessian 將結果對象進行序列化,傳輸至調用端。
序列化方式二: 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.
遠程調用:同步、單向異步、Future異步、Callback異步、可靠異步
負載均衡 : failover,隨機尋址,第七層路由,路由規則,權重規則
failover(故障轉移):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 .
隨機尋址:
負載均衡策略
選擇合適的負載均衡策略,使多個設備能很好的共同完成任務,消除或避免現有網絡負載分布不均、數據流量擁擠反應時間長的瓶頸。在各負載均衡方式中,針對不同的應用需求,在 OSI 參考模型的第二、三、四、七層的負載均衡都有相應的負載均衡策略。
負載均衡策略的優劣及其實現的難易程度有兩個關鍵因素:一、負載均衡算法,二、對網絡系統狀況的檢測方式和能力。
輪循均衡( Round Robin ): 每一次來自網絡的請求輪流分配給內部中的服務器,從 1 至 N 然后重新開始。此種均衡算法適合于服務器組中的所有服務器都有相同的軟硬件配置并且平均服務請求相對均衡的情況。
權重輪循均衡( Weighted Round Robin ): 根據服務器的不同處理能力,給每個服務器分配不同的權值,使其能夠接受相應權值數的服務請求。例如:服務器 A 的權值被設計成 1 , B 的權值是 3 , C 的權值是 6 ,則服務器 A 、 B、 C 將分別接受到 10% 、 30 %、 60 %的服務請求。此種均衡算法能確保高性能的服務器得到更多的使用率,避免低性能的服務器負載過重。
隨機均衡( Random ): 把來自網絡的請求隨機分配給內部中的多個服務器。
權重隨機均衡( Weighted Random ): 此種均衡算法類似于權重輪循算法,不過在處理請求分擔時是個隨機選擇的過程。
響應速度均衡( Response Time ): 負載均衡設備對內部各服務器發出一個探測請求(例如 Ping ),然后根據內部中各服務器對探測請求的最快響應時間來決定哪一臺服務器來響應客戶端的服務請求。此種均衡算法能較好的反映服務器的當前運行狀態,但這最快響應時間僅僅指的是負載均衡設備與服務器間的最快響應時間,而不是客戶端與服務器間的最快響應時間。
最少連接數均衡( Least Connection ): 客 戶端的每一次請求服務在服務器停留的時間可能會有較大的差異,隨著工作時間加長,如果采用簡單的輪循或隨機均衡算法,每一臺服務器上的連接進程可能會產生 極大的不同,并沒有達到真正的負載均衡。最少連接數均衡算法對內部中需負載的每一臺服務器都有一個數據記錄,記錄當前該服務器正在處理的連接數量,當有新 的服務連接請求時,將把當前請求分配給連接數最少的服務器,使均衡更加符合實際情況,負載更加均衡。此種均衡算法適合長時處理的請求服務,如 FTP 。
處理能力均衡: 此種均衡算法將把服務請求分配給內部中處理負荷(根據服務器 CPU 型號、 CPU 數量、內存大小及當前連接數等換算而成)最輕的服務器,由于考慮到了內部服務器的處理能力及當前網絡運行狀況,所以此種均衡算法相對來說更加精確,尤其適合運用到第七層(應用層)負載均衡的情況下。
DNS 響應均衡( Flash DNS ): 在 Internet 上,無論是 HTTP 、 FTP 或是其它的服務請求,客戶端一般都是通過域名解析來找到服務器確切的 IP 地址的。在此均衡算法下,分處在不同地理位置的負載均衡設備收到同一個客戶端的域名解析請求,并在同一時間內把此域名解析成各自相對應服務器的 IP 地址(即與此負載均衡設備在同一位地理位置的服務器的 IP 地址)并返回給客戶端,則客戶端將以最先收到的域名解析 IP 地址來繼續請求服務,而忽略其它的 IP 地址響應。在種均衡策略適合應用在全局負載均衡的情況下,對本地負載均衡是沒有意義的。
HSF 框架:OSGI,動態部署;Core+Plugins 模式;動態線程池
動態線程池:Jini中的TaskManager
服務方式的遠程調用:遠程通信框架Mina,消息中間件Notify,序列化協議Hessian;跨語言協議XFire
Equinox
Mina通信
心跳機制