大型網站技術架構(一)大型網站架構演化

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

?看完了有一本書,就應該有所收獲,有所總結,最近把《大型網站技術架構》一書給看完了,給人的印象實在深刻,再加上之前也搞過書本上講的反向代理和負載均衡以及session獨立存儲和緩存,因此書本看起來還是挺通俗易懂的,而且作者李智慧給人的印象(書本)也挺深刻的,我從這本書中也學到了許多,了解的許多,但是理解還是比較抽象的,寫出來才是真正的理解,因此準備寫一系列的博客來介紹和加深理解大型網站技術架構。

??????? 說道大型網站,就的先說大型網站的特點:高并發,大流量,高可用,海量數據等。下面就說說大型網站的架構演化過程吧。

1、初始階段的網站架構

??????????? 初始階段都比較簡單,通常一臺服務器就可以搞定一個網站了,看圖。

2、應用服務和數據服務分離

??????? 隨著網站業務的發展,一臺服務器逐漸不能滿足需求;這時候就需要將應用和數據分離,如圖。

3、使用緩存改善網站性能

??????? 毫無疑問,現在的網站基本上都會使用緩存,即:80%的業務訪問都會集中在20%的數據上。

4、使用應用服務器集群改善網站的并發處理能力

???????? 因為單一應用服務器能夠處理的請求連接有限,在網站訪問高峰時期,應用服務器會成為整個網站的瓶頸。因此使用負載均衡處理器勢在必然。通過負載均衡調度服務器,可將來自瀏覽器的訪問請求分發到應用的集群中的任何一臺服務器上。

?

5、數據庫讀寫分離

???????? 當用戶達到一定規模后,數據庫因為負載壓力過高而成為網站的瓶頸。而目前主流的數據庫都提供主從熱備功能,通過配置兩臺數據庫主從關系,可以將一臺數據庫的數據更新同步到另一臺服務器上。網站利用數據庫這一功能實現數據庫讀寫分離,從而改善數據庫負載壓力。

?

?

6、使用反向代理和CDN加上網站相應

?????? 提高網站的訪問速度,主要手段有使用CDN和反向代理。

??????CDN和反向代理的基本原理都是緩存,區別在于CDN部署在網絡提供商的機房,而反向代理是部署在網站的中心機房,當用戶請求到達中心機房后,首先訪問的反向代理,如果反向代理緩存著用戶請求的資源,則直接返回給用戶。

7、使用分布式文件系統和分布式數據庫系統

??? 任何強大的單一服務器都滿足不了大型網站持續增長的業務需求。

?????分布式數據庫時網站數據庫拆分的最后手段,只用在單表數據規模非常大的時候才使用。不到不得已時,網站更常用的數據庫拆分手段是業務拆分,將不同業務的數據部署在不同的物理服務器上

?

8、使用NoSQL和搜索引擎

?????? 搜素引擎也基本已經形成現在大型網站必須提供的功能了,網站需要采用一些非關系數據庫技術如NoSQL和非數據庫查詢技術如搜索引擎。

?

9、業務拆分

??????? 大型網站為了應對日益復雜的業務場景,通過使用分而治之的手段將真個網站業務拆分成不同的產品線。

?????????具體到技術上,也會根據產品線話費,將一個網站拆分成許多不同的應用,每個應用獨立部署維護。應用之間可以通過超鏈接建立管理,也可以通過消息隊列進行數據分發,當然最多的還是通過訪問同一個數據存儲系統來構成一個關聯的完整系統。

?

?

10、分布式服務

?????? 由于每一個應用系統都需要執行許多相同的業務操作,比如用戶管理,session管理,那么可以將這些公用的業務提取出來,獨立部署。

轉載于:https://my.oschina.net/zhanghaiyang/blog/597614

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274944.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274944.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274944.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

永不示弱_永不過時的網頁設計:今天和2000年的在線投資組合

永不示弱重點 (Top highlight)Philippe Starck, a renowned industrial designer, once said:著名的工業設計師Philippe Starck曾經說過: “A designer has a duty to create timeless design. To be timeless you have to think really far into the future, not …

如何使用 React 創建一個作品集網站

大家好,我是若川。持續組織了6個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。今天,你…

博弈論入門 HDU 1850

Problem Description 一年在外 父母時刻牽掛春節回家 你能做幾天好孩子嗎寒假里嘗試做做下面的事情吧陪媽媽逛一次菜場悄悄給爸爸買個小禮物主動地 強烈地 要求洗一次碗某一天早起 給爸媽用心地做回早餐如果愿意 你還可以和爸媽說咱們玩個小游戲吧 ACM課上學的呢~下…

新的一年,如何高效學習前端前沿知識~

今天強烈推薦一些互聯網行業內優質技術公眾號,互聯網人大部分都關注了,包括目前主流的公司技術團隊號,技術社區號,個人技術號,這些號行業深耕已久,會給你帶來事半功倍的效果。公眾號那么多,文章…

RabbitMQ學習總結(7)——Spring整合RabbitMQ實例

2019獨角獸企業重金招聘Python工程師標準>>> 1.RabbitMQ簡介 RabbitMQ是流行的開源消息隊列系統,用erlang語言開發。RabbitMQ是AMQP(高級消息隊列協議)的標準實現。 官網:http://www.rabbitmq.com/ 2.Spring集成Rabbi…

UIScrollView實現不全屏分頁的小技巧

瀏覽一系列圖片時,我們會經常使用UIScrollView來進行實現,因為其自帶的pagingEnabled屬性,可以非常方便的自動支持手勢左右輕掃切換切換頁面。pagingEnabled不過最近做的一個產品,設計的效果有所不同,希望每一頁圖片的…

談談對java中分層的理解_讓我們談談網頁設計中的卡片設計

談談對java中分層的理解“I want a card”, this is the first demand point that the customer said in the last issue when talking to me about demand. There is no doubt that the card type is excellent for both PC and mobile phones. From online shopping malls to…

1-jdk的安裝與配置

1- Jvm、jdk、jre之間的關系 JVM:Java虛擬機,保證java程序跨平臺。(Java Virtual Machine)JRE: Java運行環境,包含JVM和核心類庫。如果只是想運行java程序,只要安裝JRE即可。(Java R…

來自未來,2022 年的前端人都在做什么?

大家好,我是若川。持續組織了6個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。來自上帝視角的總覽…

模擬

狀態壓縮 uva 12368 - Candles 2011 - Dhaka 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #include<string> 5 #include<algorithm> 6 #include<math.h> 7 #include<map> 8 #include<queue> 9 using…

qt ui指針和本類對象_您需要了解的有關UI設計的形狀和對象的所有信息

qt ui指針和本類對象重點 (Top highlight)第1部分 (Part 1) So you’re thinking about becoming a UX/UI designer, but are afraid to start? Don’t worry. It’s easier than you think. You only need a solid foundation and a lot of dedication. I can’t help you wi…

移動端h5頁面復制粘貼(兼容到ios9安卓4.0.0)

項目使用jquery框架純h5復制粘貼解決了iscroll4阻止所有默認事件&#xff0c;長按無法彈出復制菜單項目需要寫一個上拉加載頁面&#xff0c;頁面中的物流信息需要可復制粘貼&#xff0c;同時需要兼容到ios9和安卓4.0.0, 經過大量搜索&#xff0c;最終使用clipboard。代碼如下 &…

2021 大前端技術回顧及未來展望

大家好&#xff0c;我是若川。持續組織了6個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列2021 …

最近想讀的書想做的事

越來越多了&#xff0c;但是總是還沒開始&#xff0c;一天拿出一小時&#xff0c;周末拿出一上午。加油加油 2012/3/27 C標準庫 C專家編程Expert C Programming Deep C Secrets CodeCraft編程匠藝&#xff1a;編寫卓越的代碼 代碼之美 重看 編程珠璣 編程卓越之道 卷1 卷2 代碼…

skysat重訪周期_重訪小惡夢

skysat重訪周期You awaken with a start, the nightmare still fogging your mind with terror. Rain falls through cracks in the ceiling above you. The room is sparse, metallic, desolate. Searching the pockets of your yellow raincoat, you find only a cigarette l…

Python這些位運算的妙用,絕對讓你大開眼界

位運算的性能大家想必是清楚的&#xff0c;效率絕對高。相信愛好源碼的同學&#xff0c;在學習閱讀源碼的過程中會發現不少源碼使用了位運算。但是為啥在實際編程過程中應用少呢&#xff1f;想必最大的原因&#xff0c;是較為難懂。不過&#xff0c;在面試的過程中&#xff0c;…

記一次 Vue2 遷移 Vue3 的實踐總結

大家好&#xff0c;我是若川。持續組織了6個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列一、V…

改錯3-38

#include<iostream.h>class time{private:int hour,minute,second;public:void settime(int h,int m,int s) { hour(h>0&&h<24)?h:0; minute(m>0&&m<60)?m:0; second(s>0&&s<60)?s:0; }void sh…

魔獸懷舊網站模塊下載_一個人的網站重新設計和懷舊

魔獸懷舊網站模塊下載Despite how I look, I’m the kind kind of person that loves to play old video games. (Full disclosure: I look exactly like the kind of person that loves to play old video games).盡管我長得很帥&#xff0c;但我還是一個喜歡玩舊視頻游戲的人…

華為架構師談如何理解運用模塊與微服務

模塊化還是微服務&#xff1f; 我們的業務由一個大型應用轉向微服務的時候&#xff0c;除了很好展示漂亮的PPT&#xff0c;提升KPI之外&#xff0c;實際操作時將整個業務切成微型服務似乎也不費吹灰之力。但這種方法真的是我們的最佳選擇嗎&#xff1f;確實&#xff0c;維護凌亂…