自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

網(wǎng)站架構(gòu)的伸縮性設(shè)計(jì)

開發(fā) 架構(gòu)
將不同功能分離部署可以實(shí)現(xiàn)一定程度的伸縮性,但是隨著網(wǎng)站訪問量的逐步增加,即使分離到最新粒度的獨(dú)立部署單一服務(wù)器也不能滿足業(yè)務(wù)規(guī)模的要求。因此,必須使用服務(wù)器集群,即將相同服務(wù)部署在多臺(tái)服務(wù)器上構(gòu)成一個(gè)集群整體對(duì)外服務(wù)。

網(wǎng)站開發(fā)初期,我們習(xí)慣性把所有代碼都寫到一個(gè)項(xiàng)目中。

前臺(tái)、后臺(tái)、緩存、數(shù)據(jù)庫(kù)、靜態(tài)資源... 等等。

網(wǎng)站系統(tǒng)物理分離

慢慢的系統(tǒng)會(huì)原來越大,很顯然需要面對(duì)大量用戶的高并發(fā)訪問和存儲(chǔ)海量數(shù)據(jù)。

很多用戶的請(qǐng)求,不可能在一臺(tái)服務(wù)器上完成。

很多緩存數(shù)據(jù),數(shù)據(jù)庫(kù)數(shù)據(jù),也不可能在一臺(tái)服務(wù)器上完成。

這是,網(wǎng)站的伸縮性架構(gòu)就變得尤為重要。

如下圖。

 

原理

我們通過多臺(tái)服務(wù)器組裝一個(gè)整體共同提供服務(wù),通過不斷地向集群中加入服務(wù)器,來緩解不斷上升的用戶并發(fā)訪問壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。

衡量架構(gòu)伸縮性的主要標(biāo)準(zhǔn):

  • 是否容易向集群中添加新的服務(wù)器。
  • 當(dāng)加入新的服務(wù)器,是否可以提供和原來的服務(wù)器無差別的服務(wù)。
  • 集群中可容納的總的服務(wù)器數(shù)量是否有限制。

應(yīng)用服務(wù)器集群

只要服務(wù)器上不保存數(shù)據(jù),所有的服務(wù)器都是對(duì)等的,通過負(fù)載均衡設(shè)備就可以向集群中增加服務(wù)器。

關(guān)系型數(shù)據(jù)庫(kù)集群(MYSQL)

關(guān)系型數(shù)據(jù)庫(kù)的集群伸縮性方案必須在數(shù)據(jù)庫(kù)之外實(shí)現(xiàn),通過路由分區(qū)等手段將部署有多個(gè)數(shù)據(jù)的服務(wù)器組成一個(gè)集群。

例如:Mysql 等。

非關(guān)系型數(shù)據(jù)庫(kù)集群(NOSQL)

非關(guān)系型數(shù)據(jù)庫(kù)先天就是為海量數(shù)據(jù)庫(kù)準(zhǔn)備的,因此對(duì)伸縮性的支持非常好。

例如:Redis、Memcache 等等。

緩存服務(wù)器集群

加入新的服務(wù)器可能會(huì)導(dǎo)致緩存路由失效,進(jìn)而導(dǎo)致集群中大部分緩存數(shù)據(jù)都無法訪問。

部署前需要改進(jìn)緩存路由算法保證緩存數(shù)據(jù)的可訪問性。

靜態(tài)資源服務(wù)器集群

比如 CSS,JS,Img 等資源進(jìn)行部署到服務(wù)器集群,降低流量并提高頁面呈現(xiàn)速度。

網(wǎng)站的縱向分離

將業(yè)務(wù)處理流程上的不同部分進(jìn)行分離部署,實(shí)現(xiàn)系統(tǒng)伸縮性。

如下圖。

 

網(wǎng)站的橫向分離

將不同業(yè)務(wù)模塊進(jìn)行分離部署,實(shí)現(xiàn)系統(tǒng)伸縮性。

如下圖。

 

 

單一功能通過集群規(guī)模進(jìn)行伸縮。

將不同功能分離部署可以實(shí)現(xiàn)一定程度的伸縮性,但是隨著網(wǎng)站訪問量的逐步增加,即使分離到***粒度的獨(dú)立部署單一服務(wù)器也不能滿足業(yè)務(wù)規(guī)模的要求。

因此,必須使用服務(wù)器集群,即將相同服務(wù)部署在多臺(tái)服務(wù)器上構(gòu)成一個(gè)集群整體對(duì)外服務(wù)。

比如:搜索功能。

如果一臺(tái)服務(wù)器可以提供每秒1000次的請(qǐng)求服務(wù),如果網(wǎng)站高峰期,每秒搜索訪問量為10000次。

那么,就需要你部署10臺(tái)服務(wù)器構(gòu)成一個(gè)集群。

同理,緩存服務(wù)器也會(huì)出現(xiàn)這種情況。

事實(shí)上,計(jì)算一個(gè)服務(wù)的集群規(guī)模,需要同時(shí)考慮其對(duì)可用性、性能的影響及關(guān)聯(lián)服務(wù)集群的影響。

總結(jié)

集群伸縮性,可以分為應(yīng)用服務(wù)器集群伸縮性和數(shù)據(jù)服務(wù)器集群伸縮性。

這兩種集群由于對(duì)數(shù)據(jù)狀態(tài)管理的不同,技術(shù)實(shí)現(xiàn)也有很大的區(qū)別。

大家,可以根據(jù)每一種具體的架構(gòu)設(shè)計(jì)進(jìn)行深究。

文章借鑒于書籍《大型網(wǎng)站技術(shù)架構(gòu)》。

責(zé)任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2024-09-10 09:52:23

軟件架構(gòu)伸縮性

2013-10-16 10:45:29

JVMJava

2024-04-03 08:58:48

軟件架構(gòu)隔板

2009-09-16 10:00:14

可伸縮性Web服務(wù)

2015-09-17 09:30:50

云架構(gòu)可伸縮性風(fēng)險(xiǎn)

2009-08-20 10:30:55

可伸縮性系統(tǒng)

2009-11-11 16:07:09

OSPF路由協(xié)議

2010-05-18 17:18:32

IIS服務(wù)器

2010-07-01 14:05:34

SQL Server數(shù)

2017-09-07 16:50:47

MySQL性能優(yōu)化

2011-02-18 17:54:36

網(wǎng)站首頁 PET

2010-12-28 19:55:20

軟件架構(gòu)可靠性

2013-05-30 10:20:39

系統(tǒng)架構(gòu)

2010-07-21 08:51:48

淘寶架構(gòu)

2019-05-21 21:15:32

架構(gòu)架構(gòu)設(shè)計(jì)性能優(yōu)化

2013-05-13 10:30:26

分布式架構(gòu)架構(gòu)設(shè)計(jì)網(wǎng)站架構(gòu)

2022-08-12 06:26:54

微服務(wù)架構(gòu)

2010-04-27 08:48:47

BeansDBNoSQL豆瓣

2023-09-02 20:55:04

微服務(wù)架構(gòu)

2013-12-12 11:22:42

紅帽RHEL 7Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)