您好,登錄后才能下訂單哦!
這篇文章主要講解了“web網站的可擴性展架構是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“web網站的可擴性展架構是什么”吧!
擴展性(Extensibility) - 指對現有系統影響最小的情況下,系統功能可持續擴展或提升的能力。表現在系統基礎設施穩定不需要經常變更,應用之間較少依賴和耦合,對需求變更可以敏捷響應。它是系統架構設計層面的開閉原則(對擴展開放、對修改關閉),架構設計考慮未來功能擴展,當系統增加新功能時,不需要對現有系統的結構和代碼進行修改。
伸縮性(Scalability) - 指系統能夠通過增加減少自身資源規模的方式增減自己計算處理事務的能力。如果這種增減是成比例的,就被稱作線性伸縮性。在網站架構中 ,通常指利用集群的方式增加服務器數量、提高系統的整體事務吞吐能力。
低耦合的系統更容易擴展、復用。
設計網站可擴展架構的核心思想是模塊化,并在此基礎上,降低模塊間的耦合性,提高模塊的復用性。
分層和分割不僅可以進行架構伸縮,也是模塊化設計的重要手段,利用分層和分割的方式將軟件分割為若干個低耦合的獨立的組件模塊,這些組件模塊以消息傳遞及依賴調用的方式聚合成一個完整的系統。
在大型網站中,這些模塊通過分布式部署的方式,獨立的模塊部署在獨立的服務器上,從物理上分離模塊間的耦合關系,進一步降低耦合性提高復用性。
事件驅動架構通過在低耦合的模塊間傳輸事件消息,以保持模塊的松散耦合,并借助事件消息的通信完成模塊間合作。典型的事件驅動架構就是操作系統中常見的生產者消費者模式。在大型網站中,最常見的實現手段就是分布式消息隊列。
消息生產者應用程序通過遠程訪問接口將消息推送給消息隊列服務器,消息隊列服務器將消息寫入本地內存隊列后立即返回成功響應給消息生產者。消息隊列服務器根據消息訂閱列表查找訂閱該消息的消息消費者應用程序,將消息隊列中的消息按照先進先出(FIFO)的原則將消息通過遠程通信接口發送給消息消費者程序。
在伸縮性方面,由于消息隊列服務器上的數據可以看作是即時處理的,因此類似于無狀態的服務器,伸縮性設計比較簡單。將新服務器加入分布式消息隊列集群中,通知生產者服務器更改消息隊列服務器列表即可。
在可用性方面,為了避免消費者進程處理緩慢,分布式消息隊列服務器內存空間不足造成的問題,如果內存隊列已滿,會將消息寫入磁盤,消息推送模塊在將內存隊列消息處理完成以后,將磁盤內容加載到內存隊列繼續處理。
分布式服務則通過接口分解系統耦合性,不同子系統通過相同的接口描述進行服務調用。
大型網站分布式服務的需求與特點:
失效轉移
高效的遠程通信
整合異構系統
對應用最少侵入
版本管理
實時監控
傳統的關系型數據庫為了保證關系運算的正確性,在設計數據庫表結構的時候,就需要指定表的 schema ——字段名稱,數據類型等,并要遵循特定的設計范式。這些規范帶來一個問題:難以面對需求變更帶來的挑戰,所以有人通過預先設計一些冗余字段來應對。
許多 NoSql 數據庫使用 ColumnFamily 設計來設計可擴展的數據結構。
感謝各位的閱讀,以上就是“web網站的可擴性展架構是什么”的內容了,經過本文的學習后,相信大家對web網站的可擴性展架構是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。