日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

分層是一種職責分離和依賴管理的方式:每層都有自己特定的職能;高層的服務可以調用低層的服務,但是反過來不行。

一個分層架構設計的應用通常包含很多個邏輯層(Logical Layer)和物理層(Physical Tier)。分層架構這個名字里的層(Tier),特指“物理層”(Tier),每個物理層是由很多臺機器構成,可以是部署在局域網(wǎng)下一個子網(wǎng)的虛擬機或裸金屬機器。

分層是一種職責分離和依賴管理的方式:每層都有自己特定的職能;高層的服務可以調用低層的服務,但是反過來不行。

物理層運行在不同的機器上,一層可以直接調用另一層,或者通過消息隊列進行通信。盡管每個邏輯層都可以被部署在獨立的物理層,但不是必須的。為了節(jié)省資源,一個物理層可以部署多個邏輯層。通過物理層的隔離,架構的擴展性和容錯性會更強,負面作用是會導致額外的網(wǎng)絡通信延遲。

傳統(tǒng)的三層應用(物理層)分別包含展示層、中間層、數(shù)據(jù)庫層。中間層是可選的,較為復雜的應用通常會超過三層。上面的架構圖中就包含了兩個中間層,分別實現(xiàn)了不同的功能。

一個分層架構的應用,從邏輯層的視角來看,可以分為兩類:

  1. 封閉架構:每個邏輯層只能調用它的直接下層。
  2. 開放架構:每個邏輯層都可以調用它下面的任何?層。

封閉架構嚴格限制了邏輯層之間的依賴關系,架構更為清晰。缺點是一些中間層只可能只對請求進行轉發(fā),導致不必要的網(wǎng)絡交互。

應用場景

分層架構常見于IaaS系統(tǒng),這類系統(tǒng)中每個物理層都運行在一組獨立的物理機上。不過IaaS系統(tǒng)也不必采用純粹的分層架構,畢竟架構中的某些部分使用現(xiàn)成的服務優(yōu)勢更大,比如緩存系統(tǒng)、消息隊列和數(shù)據(jù)存儲服務。

在以下場景中可以考慮分層架構:

  • 簡單的網(wǎng)絡應用。
  • 將本地部署的應用遷移上云。
  • 本地部署應用與云服務應用混合開發(fā)的場景。

傳統(tǒng)公司里本地部署(自家機房)的系統(tǒng)通常采用分層架構,各家云服務商也提供了裸金屬服務器供傳統(tǒng)企業(yè)上云。

架構優(yōu)勢

  • 云服務和本地部署的可移植性高。
  • 對于大多數(shù)開發(fā)者而言學習門檻低。
  • 從傳統(tǒng)架構模型演進過來的。
  • 支持多種多樣的部署環(huán)境,比如win/linux。

有哪些挑戰(zhàn)

  • 開發(fā)過程中,中間層很容易淪為對數(shù)據(jù)庫的CRUD,只是增加了網(wǎng)絡延遲。
  • 按照單體架構的方式設計導致功能無法獨立發(fā)布。
  • 在IaaS管理整個系統(tǒng)比使用現(xiàn)成的服務維護成本高。
  • 在大型系統(tǒng)中,網(wǎng)絡安全會成為問題。

最佳實踐

  • 使用自動擴容功能,可以應對工作負載的變化。
  • 使用消息隊列把物理層進行解耦。
  • 把半靜態(tài)資源緩存起來。
  • 數(shù)據(jù)庫層配置成高可用模式。
  • 在網(wǎng)絡層(Web Tier)之前加一層防火墻(WAF)。
  • 給每個物理層分配一個子網(wǎng),不同子網(wǎng)之間只開放特定的ip port,以提高安全性。
  • 限制數(shù)據(jù)層的訪問,比如只允許中間層訪問數(shù)據(jù),不允許網(wǎng)絡層(Web Tier)訪問。

運行在虛擬機上的分層架構

這里我們給出一個在虛擬機上推薦的分層架構:

每個物理層均包含至少兩臺虛擬機,以避免單點故障;通過負載均衡,把請求分發(fā)到不同的虛擬機上;如果要支持橫向擴容,我們可以在一個物理層配置更多虛擬機。

每個物理層都有自己的子網(wǎng),所以這些虛擬機的內網(wǎng)IP在一個網(wǎng)段里。這樣的優(yōu)勢是配置網(wǎng)絡安全規(guī)則很方便,路由表也很容易配置。

網(wǎng)絡層和業(yè)務邏輯層是無狀態(tài)的。任何一個虛擬機都可以處理到達該層的請求。數(shù)據(jù)層是多備份的數(shù)據(jù)庫系統(tǒng)。比如主從版本的MySQL、TiDB,或者云上Dynamodb等。

每個物理層都有自己的 inbound 和 outbound 網(wǎng)絡安全規(guī)則,比如數(shù)據(jù)層可以設置只允許業(yè)務邏輯層的虛擬機IP進行訪問;

補充說明

  • 分層架構并不限定于3層,復雜的系統(tǒng)通常會有很多層;七層負載均衡或四層負載均衡都是很常見的選擇。
  • 層定義了擴展性、可靠性和安全性的邊界;如果服務的SLA不一樣,可以考慮放到不同的物理層。
  • 架構中很多地方可以采用現(xiàn)成的服務,尤其是通用的緩存、消息隊列、存儲、數(shù)據(jù)庫服務。
  • 生產環(huán)境的虛擬機要禁止SSH或RDP直連;通常情況下,運維/開發(fā)人員可以登陸一個跳板機,跳板機可以直連生產環(huán)境虛擬機;對于跳板機,我們通常也會設置網(wǎng)絡規(guī)則,比如只允許特定的公網(wǎng)IP通過SSH或RDP訪問。
  • 對于核心服務,多機房容災也是要考慮的點。

分享到:
標簽:架構
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定