2023-11-02 分類: 網站建設
作者:acejoy 原文:https://acejoy.com/2017/12/19/350/
我喜歡讀書,而且我讀得很快。我一直在研究學習方法,我的學習能力還處于巔峰狀態。我特別喜歡主題閱讀,其中的細節因重點而異。事實上,這是對一類材料進行深入研究的時期,它們的內容可以相互補充和驗證,重復的內容視為復習。
本文算是近期網站架構研究的一個小總結。當然,它肯定不全面。這個領域非常大。如果后面有新的見解,繼續補充說明。不過核心概念和基本原理很容易理解,剩下的就是工具的應用和開發的細節了。然而,“魔鬼在細節中”,不要以為建筑師的工作很容易做到。
架構問題是如何產生的?
當然,它是信息社會從單機時代向網絡時代推進的產物。在單機時代,人們通常會買一臺 pC,安裝一臺,然后玩玩。各種應用基本隔離。如果要傳輸數據,軟盤,刻錄CD,復制硬盤……因為就算以后有一些網絡應用,幾十K的網速還能傳輸什么。所以那個時候,應用軟件、游戲等基本都是在軟盤/CD上發行的,網絡也不能指望。
這個時代的軟件系統也很粗糙,架構的思路哪里講,單機正常運行也不錯,知足吧。后來有了一些進展,出現了所謂“C/S”、“b/S”架構的應用模式,目前還處于原始階段。
架構思維和相關技術伴隨著互聯網時代的快速發展而來。互聯網的速度開始提高,大量的網民出現,大量的信息開始在網上被訪問。網絡游戲、電子商務等各種網絡應用迅速發展。過去10年網站開發,移動終端開始流行,原本的桌面操作系統變成了一種終端,不再是主角。外部環境的變化和需求催生了相關技術的發展。原來的單機應用程序已經轉移到網絡,然后擴展到手機。應用時代的開發技術顯然是不夠的。如果機器上安裝了之前的程序,如果出現或者性能不佳的情況,也有可能是本地環境/硬件問題造成的。本軟件僅供您使用,與他人無關。但是,該網站對全世界開放,至少對一個國家的網民開放。如果操作良好,它會被大量用戶使用。在系統設計和開發中,這種情況下要考慮的問題與前一個時代完全不同。
即使是移動應用,也基本是網站相關技術支持的,因為它需要與Web集成。依賴您自己的自定義協議和模式?利用現有成熟的工業技術,哪里有可靠、快速的開發和易于擴展的地方。
我看到的架構知識和技術大部分來自流量巨大的大型網站,尤其是電子商務網站。這其實很容易理解。電子商務這幾年發展很快,網站經常搞促銷和秒殺。這些活動給網站系統帶來了巨大的挑戰和巨大的壓力。經過反復探索,相關開發者總結出了不錯的知識。阿里巴巴雙11零點的流量,足以壓垮任何沒有精心準備的系統。爆款瞬間秒殺,瞬間流量也非常巨大。海量數據和高并發要求是典型特征。這個時候,不要指望單機的性能就能解決很多問題。不管是什么軟件/硬件,
撰寫本段時,小米正在進行促銷活動,小米商城已關閉。看來網站結構還是沒做好!:-)
怎么做?谷歌是怎么做到的?會不會是谷歌有幾臺用于搜索服務的巨型服務器?沒用,已經發現不行了。其他場景類似。
網站架構的核心概念是什么?
其實我覺得并不復雜,大部分核心屬性都很簡單。
架構的理念是不斷發現系統的瓶頸和弱點,通過分治、緩存、異步等手段逐步解決,平衡處理系統各種需求(性能、安全性)的過程、可用性、可擴展性、可擴展性……)。這形成了結構。
很容易理解,就是:兵來擋,水來掩。建筑必須做設計規劃,你必須知道該做什么。但是,不應該過度設計,也沒有必要或完全照搬大網站的做法。它應該適合你。“淘寶就是這樣做的!” - 你不是淘寶,你也不是谷歌。業務需求變化很快,留出適量的冗余就足夠了,否則會造成資源的浪費。架構隨著業務而變化。如果沒有業務,則需要更改。
必須完全摒棄獨立思考。當用戶的瀏覽器訪問一個網站頁面時,從打開網址到最終看到結果,中間有一條很長的操作鏈。通常的訪問順序是:瀏覽器發送請求->DNS解析域名->瀏覽器連接服務器->服務器訪問數據庫->服務器計算數據結果->返回數據給服務器瀏覽器。文章其實是從各個鏈條上做的。每個不同的動作都有機會增加流量的擴展和分解網站建設,于是架構產生,系統開始擴展。
DNS解析域名,智能解析到不同區域、不同服務器區域,就近分配計算資源。
當瀏覽器連接到服務器時,它可以使用負載均衡、反向代理等技術訪問服務器集群,并將訪問分發到不同的設備,但可以返回相同的結果。
服務器在訪問數據庫時,可以根據數據庫讀多寫少的現象進行讀寫分離。應用還可以用來緩存熱點數據,分割業務塊,緩解數據庫訪問壓力。以后也可以作為訪問代理網站開發,數據存儲集群化。
服務器計算數據結果,可以使用適當的語言和技術對數據進行適度緩存。可以使用消息隊列、RpC、異步處理和平滑訪問洪峰。
返回數據給瀏覽器,系統可以添加CDN就近訪問靜態資源。可以大力使用瀏覽器緩存來避免不必要的更新和訪問需求。
看,每一筆交易都跟著一堆知識,而且是非常專業的工作。這需要各專業人士的配合。當然,由于IT行業的發展,各個鏈都有好的資源/專業的服務商/軟件/工具鏈/中間件產品,開發出來供選擇使用。具體來說,在需要的時候網站制作,研究一下使用細節以及如何搭配。
在許多地方,它在需要時使用。很多事情,沒有遇到就想不到重點或者坑,所以冷靜的接受吧。
網站架構的常見演進路徑是什么?
使用圖片來表示它是理想的。直接復制到這里。圖片來自李志輝的《大型網站的技術架構——核心原理與案例分析》一書。注意它的變化不是固定的,不要死板的應用,因為它是一個電子商務業務,它的進化過程和設計可能不適合你的應用,你必須學會??靈活地處理它。
1、初始站點架構
2、應用服務和數據服務分離
3、網站使用緩存
4、應用服務器集群部署
5、數據庫讀寫分離
6、網站使用反向代理和CDN加速訪問
7、使用分布式文件和分布式數據庫系統
8、使用系統和搜索引擎
9、應用拆分
10、分布式服務
網站架構常用的工具包有哪些?
其實就是根據需求和業務特點做出合適的選擇,開發這些工具包是為了解決具體的問題。但是常用的產品基本上都是平臺上的開源產品,而且很多中間件/工具包都是用Java開發的——它的常青樹是有原因的。但是很多中小型網站也使用pHp,因為可以處理的數據量足夠,開發方便,成本也比較低。一些產品應用廣泛,比如,幾乎已經成為標準架構,甚至可以從一開始就用來緩存系統的熱點數據,以減少數據庫的訪問和計算。
其他工具包,在需要時找到合適的工具包。
隨著信息社會的發展和進步,新的產品/應用會出現,系統架構也會進一步演進以滿足需求。
新聞標題:網站開發單機時代的開發技術,明顯不夠,可別以為的活好做動態網站后臺開發
網站路徑:http://m.newbst.com/news9/292109.html
成都網站建設公司_創新互聯,為您提供網站營銷、靜態網站、關鍵詞優化、虛擬主機、App設計、品牌網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容