Pegasus來源於點評的開源框架pigeon:https://github.com/dianping/pigeongit
Pegasus是一個高性能的分佈式服務框架,致力於提供RPC遠程服務調用方案,並可做爲精簡版SOA服務治理的方案。實現基本的RPC,路由,負載均衡,容錯,統計報表,服務註冊訂閱功能。github
其核心模塊包括如下幾類:sql
隨着應用規模的不斷擴大,傳統的垂直應用架構及應用堆砌已沒法知足,急需一套分佈式服務架構以及配套的服務治理框架,以便推進總體業務架構的演進。
技術架構的演進之路簡述:單一應用優化 => 垂直拆分 => 分佈式架構 => 分佈式服務治理 => 雲服務架構數據庫
構建一個穩定,高效,容錯,易維護,可監控的服務調用框架,以便推進公司業務系統朝着SOA架構演進,從而使總體業務架構更加清晰,可控和可度量,最終實現業務產品的健康,敏捷發展。
單一應用優化:應用做爲單一包部署,以部署多臺機器和數據庫表結構及sql爲優化手段。
垂直拆分:單一應用按照業務模塊拆分爲多個獨立的應用,分散流量並各自根據流量進行橫向擴展,此時數據庫可能也已按照業務拆分開,減少單庫的壓力。
分佈式架構:應用之間存在複雜頻繁交互,此時應抽取核心業務造成業務中心,爲其餘應用提供服務,具體業務應用應儘可能薄,以便可以快速響應業務需求變動。
分佈式服務治理:業務交互愈來愈複雜,人爲掌控已愈來愈難,此時應該有治理系統專門負責,包括分析業務依賴,監控業務性能,優雅升降級,容量規劃等,以監控和提高服務質量,支撐決策分析。
雲服務架構:業務脈絡繼續無限增加,一套敏捷和高質的完整支撐框架變得愈來愈重要,縮短開發上線的生命週期,下降試錯成本(快速試錯),資源優化調配,灰度發佈等等,都須要一套自動化的,全局的資源調配架構。包括iaas,paas及一整套配套的工具和系統支持,如iaas的管理工具接口,paas的配置中心,自動化發佈流程及工具,自動化QA系統等等。至關複雜(公有云更甚),須要投入很大的人力與物力,但若成功構建,效果明顯。架構
Pegasus能夠應用於內部全部Java系統之間的遠程服務調用(或其餘語言系統對Java系統的調用),它所提供的高性能﹑智能負載路由﹑容錯﹑集羣等特性,爲打造快速﹑穩定﹑可靠的服務提供了技術保障,也爲推動SOA化提供了基礎平臺支持。負載均衡
Pegasus採用NIO方式傳輸二進制流數據,並採用長鏈接方式減小握手,比通常的http短鏈接協議(如soap)更快,從而提升業務吞吐量。另外經過智能的全局負載均衡策略,可以更加合理的調配資源,從而提升總體性能。框架