儘管不一樣的分佈式服務框架實現細節存在差別,可是核心功能差別不大,下面的架構圖描繪了一個分佈式服務框架的總體邏輯架構。緩存
總共分爲 3 層:安全
服務層,Service,其中主要部分就是動態代理,主要用於將服務提供者的接口封裝成遠程服務調用。上層的服務接口用於 Spring 之類的業務框架使用,也是 Spring 的 bean.網絡
過濾器層,服務調用職責鏈,提供多種調用切面供框架自身和使用者擴展,例如負載均衡,性能統計,服務調用完成通知,失敗重試等。架構
RPC 層,這裏就是 RPC 框架的核心部分,包括通訊框架,序列化框架,還有用於屏蔽底層通訊框架和序列化框架的抽象接口。負載均衡
分佈式服務框架一般會包含另外兩個重要功能:服務治理中心 和 服務註冊中心。框架
1. 服務註冊中心:負責服務的發佈和通知,一般支持對等集羣部署,某個節點宕機不會影響整個集羣不可用。即便所有宕機,隻影響新的節點註冊和發佈,不影響現有的,由於客戶端須要緩存服務路由信息。運維
2. 服務治理中心: 服務治理中心一般包括服務治理接口和服務治理 Portal,架構師,測試人員和系統運維人員經過服務治理 Portal 對服務的運行狀態,歷史數據,健康度和調用關係等進行可視化的分析和維護,目標是要持續優化服務,防止服務架構腐化,保證服務高質量運行。異步
雖然每一個服務框架不盡相同,可是還有有一些核心功能是相同的,好比如下功能:分佈式
以上功能能夠按照業務定製,不須要 100% 支持。性能
分佈式服務框架的性能確定比不上本地調用,緣由是:網絡通訊,序列化,反射調用,動態代理這些都會消耗性能。因此須要有性能指標。
以上就是在設計分佈式服務框架須要注意的地方,例如總體架構的設計,框架須要哪些功能,框架的須要保證哪些性能。同時,一個框架只是可使用時不夠的,還須要服務治理,保證服務不被腐化,同時保證服務的健康。