天天看點

基礎知識

一、分布式基礎理論

1、什麼是分布式系統?

分布式系統是若幹獨立計算機的集合,這些計算機對于使用者來說就像單個相關系統。分布式系統(distributed system)是建立在網絡之上的軟體系統。

随着網際網路的發展,網站應用的規模不斷擴大,正常的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,亟需一個治理系統確定架構有條不紊的演進。

2、發展演變

基礎知識

 1)、單一應用架構

當網站流量很小時,隻需一個應用,将所有功能都部署在一起,以減少部署節點和成本。此時,用于簡化增删改查工作量的資料通路架構(orm)是關鍵。

基礎知識

适用于小型網站,小型管理系統,将所有功能都部署到一個功能裡,簡單易用。

缺點:性能擴充比較難;協同開發問題;不利于更新維護。

2)、垂直應用架構

當通路量逐漸增大,單一應用增加機器帶來的加速度越來越小,将應用拆成互不相幹的幾個應用,以提升效率。此時,用于加速前端頁面開發的web架構(mvc)是關鍵。

基礎知識

通過切分業務來實作各個子產品獨立部署,降低了維護和部署的難度,團隊各司其職更易管理,性能擴充也更友善,更有針對性。

缺點: 公用子產品無法重複利用,開發性的浪費

3)、分布式服務架構

當垂直應用越來越多,應用之間互動不可避免,将核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用于提高業務複用及整合的分布式服務架構(rpc)是關鍵。

基礎知識

4)、流動計算架構

當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個排程中心基于通路壓力實時管理叢集容量,提高叢集使用率。此時,用于提高機器使用率的資源排程和治理中心(soa)[ service oriented architecture]是關鍵。

基礎知識

 3、rpc

rpc[remote procedure call]是指遠端過程調用,是一種程序間通信方式,他是一種技術的思想,而不是規範。它允許程式調用另一個位址空間(通常是共享網絡的另一台機器上)的過程或函數,而不用程式員顯式編碼這個遠端調用的細節。即程式員無論是調用本地的還是遠端的函數,本質上編寫的調用代碼基本相同。

rpc基本原理

基礎知識

 rpc兩個核心子產品:通訊,序列化。

基礎知識

二、dubbo核心概念

1、簡介

高性能java rpc架構apache dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、輕量級的開源java rpc架構,它提供了三大核心能力:面向接口的遠端方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。

官網:http://dubbo.apache.org/

2、基本概念

基礎知識

服務提供者(provider):暴露服務的服務提供方,服務提供者在啟動時,向注冊中心注冊自己提供的服務。

服務消費者(consumer): 調用遠端服務的服務消費方,服務消費者在啟動時,向注冊中心訂閱自己所需的服務,服務消費者,從提供者位址清單中,基于軟負載均衡算法,選一台提供者進行調用,如果調用失敗,再選另一台調用。

注冊中心(registry):注冊中心傳回服務提供者位址清單給消費者,如果有變更,注冊中心将基于長連接配接推送變更資料給消費者

監控中心(monitor):服務消費者和提供者,在記憶體中累計調用次數和調用時間,定時每分鐘發送一次統計資料到監控中心

調用關系說明:

服務容器負責啟動,加載,運作服務提供者。

服務提供者在啟動時,向注冊中心注冊自己提供的服務。

服務消費者在啟動時,向注冊中心訂閱自己所需的服務。

注冊中心傳回服務提供者位址清單給消費者,如果有變更,注冊中心将基于長連接配接推送變更資料給消費者。

服務消費者,從提供者位址清單中,基于軟負載均衡算法,選一台提供者進行調用,如果調用失敗,再選另一台調用。

服務消費者和提供者,在記憶體中累計調用次數和調用時間,定時每分鐘發送一次統計資料到監控中心。

3、dubbo特性

1)、面向接口代理的高性能rpc調用

提供高性能的基于代理的遠端調用能力,服務以接口為粒度,為開發者屏蔽遠端調用底層細節

2)、智能負載均衡

内置多種負載均衡政策,智能感覺下遊節點健康狀況,顯著減少調用延遲,提高系統吞吐量。

3)、服務自動注冊與發現

支援多種注冊中心服務,服務執行個體上下線實時感覺。

4)、高度可擴充能力

遵循微核心+插件的設計原則,所有核心能力如protocol、transport、serialization被設計為擴充點,平等對待内置實作和第三方實作。

5)、運作期流量排程

内置條件、腳本等路由政策,通過配置不同的路由規則,輕松實作灰階釋出,同機房優先等功能。

6)、可視化的服務治理與運維

提供豐富服務治理、運維工具:随時查詢服務中繼資料、服務健康狀态及調用統計,實時下發路由政策、調整配置參數。

繼續閱讀