這篇文章主要講解了“web網(wǎng)站的可擴(kuò)性展架構(gòu)是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“web網(wǎng)站的可擴(kuò)性展架構(gòu)是什么”吧!
為賀蘭等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及賀蘭網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、賀蘭網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!擴(kuò)展性(Extensibility) - 指對現(xiàn)有系統(tǒng)影響最小的情況下,系統(tǒng)功能可持續(xù)擴(kuò)展或提升的能力。表現(xiàn)在系統(tǒng)基礎(chǔ)設(shè)施穩(wěn)定不需要經(jīng)常變更,應(yīng)用之間較少依賴和耦合,對需求變更可以敏捷響應(yīng)。它是系統(tǒng)架構(gòu)設(shè)計(jì)層面的開閉原則(對擴(kuò)展開放、對修改關(guān)閉),架構(gòu)設(shè)計(jì)考慮未來功能擴(kuò)展,當(dāng)系統(tǒng)增加新功能時(shí),不需要對現(xiàn)有系統(tǒng)的結(jié)構(gòu)和代碼進(jìn)行修改。
伸縮性(Scalability) - 指系統(tǒng)能夠通過增加減少自身資源規(guī)模的方式增減自己計(jì)算處理事務(wù)的能力。如果這種增減是成比例的,就被稱作線性伸縮性。在網(wǎng)站架構(gòu)中 ,通常指利用集群的方式增加服務(wù)器數(shù)量、提高系統(tǒng)的整體事務(wù)吞吐能力。
低耦合的系統(tǒng)更容易擴(kuò)展、復(fù)用。
設(shè)計(jì)網(wǎng)站可擴(kuò)展架構(gòu)的核心思想是模塊化,并在此基礎(chǔ)上,降低模塊間的耦合性,提高模塊的復(fù)用性。
分層和分割不僅可以進(jìn)行架構(gòu)伸縮,也是模塊化設(shè)計(jì)的重要手段,利用分層和分割的方式將軟件分割為若干個(gè)低耦合的獨(dú)立的組件模塊,這些組件模塊以消息傳遞及依賴調(diào)用的方式聚合成一個(gè)完整的系統(tǒng)。
在大型網(wǎng)站中,這些模塊通過分布式部署的方式,獨(dú)立的模塊部署在獨(dú)立的服務(wù)器上,從物理上分離模塊間的耦合關(guān)系,進(jìn)一步降低耦合性提高復(fù)用性。
事件驅(qū)動架構(gòu)通過在低耦合的模塊間傳輸事件消息,以保持模塊的松散耦合,并借助事件消息的通信完成模塊間合作。典型的事件驅(qū)動架構(gòu)就是操作系統(tǒng)中常見的生產(chǎn)者消費(fèi)者模式。在大型網(wǎng)站中,最常見的實(shí)現(xiàn)手段就是分布式消息隊(duì)列。
消息生產(chǎn)者應(yīng)用程序通過遠(yuǎn)程訪問接口將消息推送給消息隊(duì)列服務(wù)器,消息隊(duì)列服務(wù)器將消息寫入本地內(nèi)存隊(duì)列后立即返回成功響應(yīng)給消息生產(chǎn)者。消息隊(duì)列服務(wù)器根據(jù)消息訂閱列表查找訂閱該消息的消息消費(fèi)者應(yīng)用程序,將消息隊(duì)列中的消息按照先進(jìn)先出(FIFO)的原則將消息通過遠(yuǎn)程通信接口發(fā)送給消息消費(fèi)者程序。
在伸縮性方面,由于消息隊(duì)列服務(wù)器上的數(shù)據(jù)可以看作是即時(shí)處理的,因此類似于無狀態(tài)的服務(wù)器,伸縮性設(shè)計(jì)比較簡單。將新服務(wù)器加入分布式消息隊(duì)列集群中,通知生產(chǎn)者服務(wù)器更改消息隊(duì)列服務(wù)器列表即可。
在可用性方面,為了避免消費(fèi)者進(jìn)程處理緩慢,分布式消息隊(duì)列服務(wù)器內(nèi)存空間不足造成的問題,如果內(nèi)存隊(duì)列已滿,會將消息寫入磁盤,消息推送模塊在將內(nèi)存隊(duì)列消息處理完成以后,將磁盤內(nèi)容加載到內(nèi)存隊(duì)列繼續(xù)處理。
分布式服務(wù)則通過接口分解系統(tǒng)耦合性,不同子系統(tǒng)通過相同的接口描述進(jìn)行服務(wù)調(diào)用。
大型網(wǎng)站分布式服務(wù)的需求與特點(diǎn):
負(fù)載均衡
失效轉(zhuǎn)移
高效的遠(yuǎn)程通信
整合異構(gòu)系統(tǒng)
對應(yīng)用最少侵入
版本管理
實(shí)時(shí)監(jiān)控
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫為了保證關(guān)系運(yùn)算的正確性,在設(shè)計(jì)數(shù)據(jù)庫表結(jié)構(gòu)的時(shí)候,就需要指定表的 schema ——字段名稱,數(shù)據(jù)類型等,并要遵循特定的設(shè)計(jì)范式。這些規(guī)范帶來一個(gè)問題:難以面對需求變更帶來的挑戰(zhàn),所以有人通過預(yù)先設(shè)計(jì)一些冗余字段來應(yīng)對。
許多 NoSql 數(shù)據(jù)庫使用 ColumnFamily 設(shè)計(jì)來設(shè)計(jì)可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)。
感謝各位的閱讀,以上就是“web網(wǎng)站的可擴(kuò)性展架構(gòu)是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對web網(wǎng)站的可擴(kuò)性展架構(gòu)是什么這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!