熱門標簽
- 雜谷腦網(wǎng)頁制作公司
- 維明外貿(mào)網(wǎng)站建設
- 高士網(wǎng)頁設計公司
- ui設計師需要的網(wǎng)站有哪些
- 榜羅高端網(wǎng)站建設
- 吳家窯網(wǎng)頁制作公司
- 安良網(wǎng)絡推廣
- 博客網(wǎng)站頁面布局設計代碼
- 外國設計網(wǎng)站p開通
- 達仁高端網(wǎng)站建設
- 上八里SEO優(yōu)化
- 斗湖堤網(wǎng)站設計公司
- 林口網(wǎng)頁制作公司
- logo設計網(wǎng)站視頻
- 珠琳網(wǎng)站建設公司
- 大名網(wǎng)站建設制作
- 哈佛大學的引物設計網(wǎng)站
- 崇福網(wǎng)絡推廣
- 香山網(wǎng)站開發(fā)公司
- 海拉蘇網(wǎng)站設計
大型網(wǎng)站核心架構的關鍵元素
深圳網(wǎng)站,大型網(wǎng)站核心建筑的關鍵元素,是關于什么是建筑的流行說法;**高層次的規(guī)劃,難以改變的決策;,這些計劃和決定為事物的未來發(fā)展奠定了方向和**終藍圖。
從這個意義上說,人生規(guī)劃也是一種結(jié)構。選擇什么學校、什么專業(yè)、什么公司、什么對象、什么生活,都是你人生的結(jié)構。
具體來說,軟件體系結(jié)構維基百科的定義如下:抽象描述軟件的總體結(jié)構和組件,并用它來指導大型軟件系統(tǒng)的各個方面設計quo;。系統(tǒng)的各個重要組成部分及其相互關系構成了系統(tǒng)的體系結(jié)構。這些組件可以是特定的功能模塊,也可以是非功能模塊設計和決策模塊。它們相互聯(lián)系形成一個整體,共同構成了軟件系統(tǒng)的體系結(jié)構。
一般來說,除了當前系統(tǒng)的功能需求外,軟件體系結(jié)構還需要注意性能、可用性、可擴展性、可擴展性和安全性這五個體系結(jié)構要素。在架構設計的過程中,需要平衡這五個要索之間的關系以實現(xiàn)需求和架構(Architecture)目標,這些架構元素也可以被檢查衡ftmdash;軟件體系結(jié)構設計的優(yōu)點和缺點被用來判斷它們是否滿足期望。
3.1性能是網(wǎng)站的重要指標。除非別無選擇(例如,只能在火車站買火車票)www.12306.cn 網(wǎng)站,用戶無法忍受緩慢的響應網(wǎng)站。緩慢打開網(wǎng)站會導致嚴重的用戶丟失,很多時候網(wǎng)站性能問題會觸發(fā)網(wǎng)站體系結(jié)構升級優(yōu)化。性能是網(wǎng)站體系結(jié)構設計的一個重要方面,任何軟件體系結(jié)構設計方案都必須考慮可能帶來的性能問題。
由于性能問題幾乎無處不在,有許多方法可以優(yōu)化網(wǎng)站性能。從用戶瀏覽器到數(shù)據(jù)庫,所有影響用戶請求的鏈接都可以優(yōu)化。
在瀏覽器端,可以通過瀏覽器緩存、頁面壓縮、頁面布局合理、減少Cookie傳輸來提高性能。
靜態(tài)內(nèi)容網(wǎng)站還可以使用CDN分發(fā)到用戶**近的網(wǎng)絡服務提供商室,這使得用戶能夠通過**短的訪問路徑獲得數(shù)據(jù)。反向代理服務器可以部署在網(wǎng)站機房緩存熱文件,加快請求響應速度,降低應用服務器的負載壓力。
在應用服務器端,通過緩存在內(nèi)存中的熱數(shù)據(jù),可以使用服務器本地緩存和分布式緩存處理用戶請求,加快請求處理過程,降低數(shù)據(jù)庫的負載壓力。
用戶請求也可以通過異步操作發(fā)送到消息隊列,等待后續(xù)任務的處理,而當前請求則直接將響應返回給用戶。
在網(wǎng)站多個用戶有高并發(fā)請求的情況下,可以將多個應用服務器組合成一個集群來服務外部,提高整體處理能力,提高性能。
在代碼級別,還可以通過使用多線程、改進內(nèi)存管理等來優(yōu)化性能。
在服務器端的數(shù)據(jù)庫、索引、緩存、SQL優(yōu)化等性能優(yōu)化方法已經(jīng)比較成熟。但通過優(yōu)化數(shù)據(jù)模型、存儲結(jié)構和可擴展性,NoSQL數(shù)據(jù)庫在性能上的優(yōu)勢越來越明顯。
衡量網(wǎng)站性能的指標有一系列,包括響應時間TPS、系統(tǒng)性能計數(shù)器等,這些指標也是網(wǎng)站監(jiān)控的重要參數(shù)。通過監(jiān)測這些指標,可以分析系統(tǒng)瓶頸,預測網(wǎng)站容量,并對異常指標進行報警,**系統(tǒng)的可用性
大型網(wǎng)站技術架構的核心原則和案例分析。對于網(wǎng)站,性能滿足期望只是一個必要條件。由于網(wǎng)站可能面臨的訪問壓力是不可預測的,因此有必要研究當系統(tǒng)超過負載設計容量時可能出現(xiàn)的性能問題。在高并發(fā)訪問網(wǎng)站的情況下,它需要長期連續(xù)運行,系統(tǒng)必須在連續(xù)運行和接入壓力不均勻的情況下保持穩(wěn)定的性能特性。
3.2大網(wǎng)站的可用性,特別是知名網(wǎng)站的可用性,網(wǎng)站的故障和服務的不可用是一個大事故,可能影響網(wǎng)站的聲譽,而電可能被起訴。對于電子商務網(wǎng)站來說,網(wǎng)站的不可用也意味著金錢和用戶的損失。因此,幾乎所有網(wǎng)站都承諾7x24是可用的,但是亊實上的網(wǎng)站沒有一個能夠?qū)崿F(xiàn)7x24的完全使用??倳惺〉臅r候??鄢@些故障次數(shù)后,網(wǎng)站的總可用時間可轉(zhuǎn)換為網(wǎng)站的可用性指數(shù),從而度量M網(wǎng)站的可用性。一些知名的大型網(wǎng)站可以實現(xiàn)4個9以上的可用性,即可用性超過99.99%。
由于網(wǎng)站中使用的服務器硬件通常是普通的商用服務器,這些服務器的設計標準并不能**高可用性,也就是說,很可能出現(xiàn)服務器硬件故障,這就是俗稱的服務器停機。Large網(wǎng)站通常有上萬臺服務器,每天一定會有一些服務器停機。因此,網(wǎng)站高可用性架構設計的前提是必須有服務器停機,而s的高可用性標準設計是當服務器停機時,服務或應用程序仍然可用。
網(wǎng)站高可用性的主要手段是冗余。應用程序部署在多個服務器上以同時提供訪問,數(shù)據(jù)存儲在多個服務器上以相互備份。任何服務器中斷都不會影響應用程序的整體可用性,也不會導致數(shù)據(jù)丟失。
對于應用服務器,多個應用服務器組成一個集群,通過負載平衡設備提供服務。如果任何一臺服務器關閉,它只需要將請求切換到其他服務器即可實現(xiàn)應用程序的高可用性。但是,一個先決條件是應用程序服務器無法保存請求的會話信息。否則,服務器將關閉,會話將丟失。即使用戶請求被轉(zhuǎn)發(fā)到其他服務器,業(yè)務處理也無法完成。
對于存儲服務器,由于存儲在其上的數(shù)據(jù),因此需要實時備份數(shù)據(jù)。當服務器宕機時,需要將數(shù)據(jù)訪問轉(zhuǎn)移到可用的服務器,并進行數(shù)據(jù)恢復,以確保在服務器繼續(xù)存在時數(shù)據(jù)仍然可用。
除了運行時環(huán)境外,網(wǎng)站的高可用性還需要軟件開發(fā)過程的質(zhì)量**。通過預發(fā)布驗證、自動測試、自動發(fā)布灰度發(fā)布等手段,降低了將故障引入在線環(huán)境的可能性,避免了故障范圍。
衡量一個系統(tǒng)架構設計是否滿足高可用性的目標是假設當系統(tǒng)中的任何一個或多個服務器關閉并且出現(xiàn)意外問題時,系統(tǒng)作為一個整體是否仍然可用。
3.3大規(guī)模網(wǎng)站需要面對大用戶對sea數(shù)據(jù)的高并發(fā)訪問和存儲。不可能只通過一個服務器網(wǎng)站來處理所有用戶請求和存儲所有數(shù)據(jù)。通過集群集成多個服務器來提供服務。所謂可擴展性是指通過向集群中添加服務器來緩解日益增長的并發(fā)訪問壓力和日益增長的數(shù)據(jù)存儲需求。
體系結(jié)構可伸縮性的主要標準是是否可以使用多個服務器來構建一個屬性集群,以及是否可以方便地向集群添加新服務器。新服務器是否能提供與原服務器相同的服務。集群中可容納的服務器m的總數(shù)是否有限制。
對于應用服務器集群,只要數(shù)據(jù)不保存在服務器上,所有服務器都是對等的。通過使用適當?shù)呢撦d平衡設備,服務器可以連續(xù)地添加到集群中。
對于緩存服務器集群,添加新的服務器可能會導致緩存路由失敗,從而無法訪問集群中大中的部分緩存數(shù)據(jù)。盡管緩存的數(shù)據(jù)可以通過數(shù)據(jù)庫重新加載,但如果應用程序嚴重依賴緩存,整個網(wǎng)站可能會崩潰。我們需要改進緩存路由算法,以確保緩存數(shù)據(jù)的可訪問性。
雖然關系數(shù)據(jù)庫支持數(shù)據(jù)復制、主從熱備等機制,但難以實現(xiàn)大規(guī)模集群的可擴展性。因此,關系型數(shù)據(jù)庫的集群可擴展性方案必須在數(shù)據(jù)庫外部實現(xiàn),部署多個數(shù)據(jù)庫的服務器通過分區(qū)的方式形成一個集群。
對于大多數(shù)NoSQL數(shù)據(jù)庫產(chǎn)品來說,由于其固有的是sea-yen數(shù)據(jù),因此其對可擴展性的支持通常是非常好的,可以在操作維護參與較少的情況下實現(xiàn)集群規(guī)模的線性擴展。
3.4可擴展性
與其他體系結(jié)構不同,網(wǎng)站的可擴展體系結(jié)構側(cè)重于網(wǎng)站的功能需求(隨著網(wǎng)站的快速發(fā)展和功能的不斷擴展,網(wǎng)站可擴展體系結(jié)構的主要目的是如何構建設計網(wǎng)站體系結(jié)構,使其能夠快速響應需求的變化。
衡量恒宇網(wǎng)站架構可擴展性的主要標準是,在網(wǎng)站中添加新的業(yè)務產(chǎn)品時,是否能夠?qū)ΜF(xiàn)有產(chǎn)品透明,是否能夠在不改變或很少改變現(xiàn)有業(yè)務功能的情況下推出新產(chǎn)品。如果不同產(chǎn)品之間耦合很小,那么一個產(chǎn)品的變化對其他產(chǎn)品沒有影響,其他產(chǎn)品和功能不需要改變。
網(wǎng)站可擴展體系結(jié)構的主要手段是事件驅(qū)動體系結(jié)構和分布式服務。
事件驅(qū)動體系結(jié)構通常在網(wǎng)站中通過使用消息隊列實現(xiàn),消息隊列將用戶請求和其他業(yè)務事件構造為消息并發(fā)布到消息隊列,消息處理器作為使用者從消息隊列獲取消息進行處理。通過將消息生成與消息處理分離,可以透明地添加新的消息生產(chǎn)者任務或新的消息使用者任務。
分布式服務將業(yè)務與可重用服務分開,并由分布式服務框架調(diào)用。新產(chǎn)品可以通過調(diào)用可重用服務來實現(xiàn)自己的業(yè)務邏輯,而不會對現(xiàn)有產(chǎn)品產(chǎn)生任何影響。當可重用服務升級發(fā)生變化時,還可以提供多版本服務,實現(xiàn)應用程序的透明升級,而不必強制應用程序同步變化。
為了保持市場地位,龐大網(wǎng)站還將吸引第三方開發(fā)商致電網(wǎng)站服務,利用網(wǎng)站數(shù)據(jù)開發(fā)周邊產(chǎn)品,拓展網(wǎng)站業(yè)務。第三方開發(fā)者使用網(wǎng)站服務的主要方式是large網(wǎng)站提供的開放平臺接口。
3.5安全
互聯(lián)網(wǎng)是開放的,任何地方的任何人都可以訪問網(wǎng)站網(wǎng)站的安全體系結(jié)構是保護網(wǎng)站不受惡意訪問和攻擊,并保護網(wǎng)站重要數(shù)據(jù)不被竊取。
衡量網(wǎng)站安全體系結(jié)構的標準是,是否存在針對各種現(xiàn)有和潛在攻擊以及秘密竊取手段的可靠響應策略。
3.6總結(jié)
性能、可用性、可擴展性、可擴展性和安全性是網(wǎng)站體系結(jié)構的核心元素。這些問題解決后,大型網(wǎng)站體系結(jié)構設計的大部分挑戰(zhàn)都被克服了。因此,本書的第二部分是根據(jù)這五個結(jié)構要素來組織的。
本章可以看作是本書第二章的概要,也是第二章的總結(jié)和歸納。如果您在閱讀本章的過程中有任何困惑,您不必糾結(jié),請直接跳過,然后您可以在讀完整本書后再回去復習。
http://ywxrmy.cn/jianzhanzhishi/1129.html 大型網(wǎng)站核心架構的關鍵元素