国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在阿里“救了八年火”的程序猿講述大型項目架構演進過程

新聞 數據中心
一個大型服務系統都是從小一步一步走過來的,在每個階段,找到對應該階段網站架構所面臨的問題,然后在不斷解決這些問題,在這個過程中整個架構會一直演進。

 高大上的淘寶架構

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

上面是一些安全體系系統,如數據安全體系、應用安全體系、前端安全體系等。

中間是業務運營服務系統,如會員服務、商品服務、店鋪服務、交易服務等。

還有共享業務,如分布式數據層、數據分析服務、配置服務、數據搜索服務等。

最下面呢,是中間件服務,如MQS即隊列服務,OCS即緩存服務等。

圖中也有一些看不到,例如高可用的一個體現,實現雙機房容災和異地機房單元化部署,為淘寶業務提供穩定、高效和易于維護的基礎架構支撐。

這是一個含金量非常高的架構,也是一個非常復雜而龐大的架構。當然這個也不是一天兩天演進成這樣的,也不是一上來就設計并開發成這樣高大上的架構的。

這邊就要說一下,小型公司要怎么做呢?對很多創業公司而言,很難在初期就預估到流量十倍、百倍以及千倍以后網站架構會是什么樣的一個狀況。同時,如果系統初期就設計一個千萬級并發的流量架構,很難有公司可以支撐這個成本。

因此,一個大型服務系統都是從小一步一步走過來的,在每個階段,找到對應該階段網站架構所面臨的問題,然后在不斷解決這些問題,在這個過程中整個架構會一直演進。

那我們來一起看一下。

單服務器-俗稱all in one

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

從一個小網站說起,一臺服務器也就足夠了,文件服務器,數據庫,還有應用都部署在一臺機器,俗稱ALL IN ONE

隨著我們用戶越來越多,訪問越來越大,硬盤,CPU,內存等都開始吃緊,一臺服務器已經滿足不了,這個時候看一下下一步演進

數據服務與應用服務分離

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

我們將數據服務和應用服務分離,給應用服務器配置更好的 CPU,內存。而給數據服務器配置更好更大的硬盤。

分離之后提高一定的可用性,例如Files Server掛了,我們還是可以操作應用和數據庫等。

隨著訪問qps越來越高,降低接口訪問時間,提高服務性能和并發,成為了我們下一個目標,發現有很多業務數據不需要每次都從數據庫獲取。

使用緩存,包括本地緩存,遠程緩存,遠程分布式緩存

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

因為 80% 的業務訪問都集中在 20% 的數據上,也就是我們經常說的28法則。如果我們能將這部分數據緩存下來,性能一下子就上來了。而緩存又分為兩種:本地緩存和遠程緩存緩存,以及遠程分布式緩存,我們這里面的遠程緩存圖上畫的是分布式的緩存集群(Cluster)。

思考的點

  1. 具有哪種業務特點數據使用緩存?

  2. 具有哪種業務特點的數據使用本地緩存?

  3. 具有哪種務特點的數據使用遠程緩存?

  4. 分布式緩存在擴容時候會碰到什么問題?如何解決?分布式緩存的算法都有哪幾種?各有什么優缺點?

這個時候隨著訪問qps的提高,服務器的處理能力會成為瓶頸。雖然是可以通過購買更強大的硬件,但總會有上限,而且這個到后期成本就是指數級增長了,這時,我們就需要服務器的集群。需要使我們的服務器可以橫向擴展,這時,就必須加個新東西:負載均衡調度服務器。

使用負載均衡,進行服務器集群

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

增加了負載均衡,服務器集群之后,我們可以橫向擴展服務器,解決了服務器處理能力的瓶頸。

思考的點

  1. 負載均衡的調度策略都有哪些?

  2. 各有什么優缺點?

  3. 各適合什么場景?

打個比方,我們有輪詢,權重,地址散列,地址散列又分為原ip地址散列hash,目標ip地址散列hash,最少連接,加權最少連接,還有繼續升級的很多種策略......我們一起來分析一下

典型負載均衡策略分析

  1. 輪詢:優點:實現簡單,缺點:不考慮每臺服務器處理能力

  2. 權重:優點:考慮了服務器處理能力的不同

  3. 地址散列:優點:能實現同一個用戶訪問同一個服務器

  4. 最少連接:優點:使集群中各個服務器負載更加均勻

  5. 加權最少連接:在最少連接的基礎上,為每臺服務器加上權值。算法為(活動連接數*256+非活動連接數)/權重,計算出來的值小的服務器優先被選擇。

繼續引出問題的場景:

我們的登錄的時候登錄了A服務器,session信息存儲到A服務器上了,假設我們使用的負載均衡策略是ip hash,那么登錄信息還可以從A服務器上訪問,但是這個有可能造成某些服務器壓力過大,某些服務器又沒有什么壓力,這個時候壓力過大的機器(包括網卡帶寬)有可能成為瓶頸,并且請求不夠分散。

這時候我們使用輪詢或者最小連接負載均衡策略,就導致了,第一次訪問A服務器,第二次可能訪問到B服務器,這個時候存儲在A服務器上的session信息在B服務器上讀取不到。

Session管理-Session Sticky粘滯會話:

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

打個比方就是如果我們每次吃飯都要保證我們用的是自己的碗筷,而只要我們在一家飯店里存著我們的碗筷,只要我們每次去這家飯店吃飯就好了。

對于同一個連接中的數據包,負載均衡會將其轉發至后端固定的服務器進行處理。

解決了我們session共享的問題,但是它有什么缺點呢?

  1. 一臺服務器運行的服務掛掉,或者重啟,上面的 session 都沒了

  2. 負載均衡器成了有狀態的機器,為以后實現容災造成了羈絆

Session管理-Session 復制

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

就像我們在所有的飯店里都存一份自己的碗筷。我們隨意去哪一家飯店吃飯都OK,不適合做大規模集群,適合機器不多的情況。

解決了我們session共享的問題,但是它有什么缺點呢?

  1. 應用服務器間帶寬問題,因為需要不斷同步session數據

  2. 大量用戶在線時,服務器占用內存過多

Session管理-基于Cookie

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

打個比方,就是我們每次去飯店吃飯,都自己帶著自己的碗筷。

解決了我們session共享的問題,但是它有什么缺點呢?

  1. cookie 的長度限制

  2. cookie存于瀏覽器,安全性是一個問題

Session管理-Session 服務器

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

打個比方,就是我們的碗筷都存在了一個龐大的櫥柜里,我們去任何一家飯店吃飯,都可以從櫥柜中拿到屬于我們自己的碗筷。

解決了我們session共享的問題,這種方案需要思考哪些問題呢?

  1. 保證 session 服務器的可用性,session服務器單點如何解決?

  2. 我們在寫應用時需要做調整存儲session的業務邏輯

打個比方,我們為了提高session server的可用性,可以繼續給session server做集群

中間總結

所以說,網站架構在遇到某些指標瓶頸時,演進的過程中,都有哪些解決方案,他們都有什么優缺點?業務功能上如何取舍?如何做出選擇?這個過程才是最重要的。

在解決了橫向擴展應用服務器之后,那我們繼續~~

針對上面的技術我特意整理了一下,有很多技術不是靠幾句話能講清楚,所以干脆找朋友錄制了一些視頻,很多問題其實答案很簡單,但是背后的思考和邏輯不簡單,要做到知其然還要知其所以然。

繼續回到目前架構圖

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

數據庫的讀及寫操作都還需要經過數據庫。當用戶量達到一定量,數據庫將會成為瓶頸。那我們如何來解決呢?

數據庫讀寫分離

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

使用數據庫提供的熱備功能,將所有的讀操作引入slave 服務器,因為數據庫的讀寫分離了,所以,我們的應用程序也得做相應的變化。我們實現一個數據訪問模塊(圖中的data access module)使上層寫代碼的人不知道讀寫分離的存在。這樣多數據源讀寫分離就對業務代碼沒有了侵入。這里就引出了代碼層次的演變

思考的點

  1. 如何支持多數據源?

  2. 如何封裝對業務沒有侵入?

  3. 如何使用目前業務的ORM框架完成主從讀寫分離?是否需要更換ORM模型?ORM模型之間各有什么優缺點?

  4. 如何取舍?

數據庫讀寫分離會遇到如下問題:

  1. 在master和slave復制的時候,考慮延時問題、數據庫的支持、復制條件的支持。

  2. 當為了提高可用性,將數據庫分機房后,跨機房傳輸同步數據,這個更是問題。

  3. 應用對于數據源的路由問題

使用反向代理和 CDN 加速網站響應

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

使用 CDN 可以很好的解決不同的地區的訪問速度問題,反向代理則在服務器機房中緩存用戶資源。

訪問量越來越大,我們文件服務器也出現了瓶頸。

分布式文件系統

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

思考的點

  1. 分布式文件系統如何不影響已部署在線上的業務訪問?不能讓某個圖片突然訪問不到呀

  2. 是否需要業務部門清洗數據?

  3. 是否需要重新做域名解析?

這個時候數據庫又出現了瓶頸

數據垂直拆分

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

數據庫專庫專用,如圖Products、Users、Deal庫。

解決寫數據時,并發,量大的問題。

思考的點

  1. 跨業務的事務?如何解決?使用分布式事務、去掉事務或不追求強事務

  2. 應用的配置項多了

  3. 如何跨庫進行數據的join操作

這個時候,某個業務的數據表的數據量或者更新量達到了單個數據庫的瓶頸

數據水平拆分

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

如圖,我們把User拆成了User1和User2,將同一個表的數據拆分到兩個數據庫中,解決了單數據庫的瓶頸。

思考的點

  1. 水平拆分的策略都有哪些?各有什么優缺點?

  2. 水平拆分的時候如何清洗數據?

  3. SQL 的路由問題,需要知道某個 User 在哪個數據庫上。

  4. 主鍵的策略會有不同。

  5. 假設我們系統中需要查詢2017年4月份已經下單過的用戶名的明細,而這些用戶分布在user1和user2上,我們后臺運營系統在展示時如何分頁?

這個時候,公司對外部做了流量導入,我們應用中的搜索量飆升,繼續演進

拆分搜索引擎

在阿里“救了八年火”的程序猿,這樣講述大型項目架構演進過程

使用搜索引擎,解決數據查詢問題。部分場景可使用 NoSQL 提高性能,開發數據統一訪問模塊,解決上層應用開發的數據源問題。如圖data access module 可以訪問數據庫,搜索引擎,NoSQL

 

最后總結

這個只是一個舉例演示,各個服務的技術架構是需要根據自己業務特點進行優化和演進的,所以大家的過程也不完全相同。

最后的這個也不是完美的,例如負載均衡還是一個單點,也需要集群,我們的這個架構呢也只是冰山一角,滄海一粟。在架構演進的過程中,還要考慮系統的安全性、數據分析、監控、反作弊等等......,同時繼續發展呢,SOA架構、服務化、消息隊列、任務調度、多機房等等… ...

從剛才對架構演進的講解,也可以看出來,所有大型項目的架構和代碼,都是這么一步一步的根據實際的業務場景,和發展情況發展演變而來的,在不同的階段,會使用的不同的技術,不同的架構來解決實際的問題,所以說,高大上的項目技術架構和開發設計實現不是一蹴而就的。

正是所謂的萬丈高樓平地起。在架構演進的過程中,小到核心模塊代碼,大到核心架構,都會不斷演進的,這個過程值得我們去深入學習和思考。

責任編輯:張燕妮 來源: 慕課網
相關推薦

2018-09-11 17:40:23

容器數據云計算

2018-09-19 13:42:28

Kubernetes架構負載均衡

2022-06-07 08:01:11

Kafka網絡架構

2021-10-08 09:57:38

Java開發架構

2014-06-16 14:35:31

OpenFlow

2018-08-01 14:42:07

團隊職業工作

2020-03-09 08:00:03

架構緩存集群

2015-08-31 10:11:43

iOS大項目開發

2015-08-26 10:36:32

ios開發漫談

2021-05-12 08:54:56

FastAP web 框架數據庫操作

2010-02-22 13:16:25

軟交換技術

2009-11-03 10:21:46

ADSL接入網技術

2024-01-22 09:17:35

2017-11-30 11:29:15

數據中心網絡虛擬化

2017-08-03 13:26:17

阿里企業級互聯網架構

2022-03-14 10:24:31

編程語言開發

2021-12-16 13:04:41

消息隊列緩存

2019-10-10 10:30:26

MVCModelController

2012-04-01 15:03:39

大型項目開發者

2018-05-29 09:21:13

K8S系統架構
點贊
收藏

51CTO技術棧公眾號

久久久噜噜噜久久人人看 | 九色精品美女在线| 久久综合精品国产一区二区三区| 黄色成人av网站| 日韩精选在线| 麻豆av在线免费观看| 2020中文字幕在线播放| cao在线观看| 欧美不卡三区| 成人欧美一区二区三区在线观看| 日韩一区二区福利| 国产老肥熟一区二区三区| 视频国产一区二区三区| 国产精品99免视看9| 日韩久久精品一区| 欧美三级免费观看| 国产成人亚洲综合a∨婷婷图片| 亚洲伦伦在线| 96sao在线精品免费视频| 国产最新视频在线| 最近最好的中文字幕2019免费 | 久久夜色精品国产噜噜av小说| 日本成a人片在线观看| 欧美黑人孕妇孕交| 国产福利图片| 大地资源高清播放在线观看| 亚洲一一在线| 91在线观看网站| 国产精品xxxx| 台湾成人av| 日韩av一级大片| 天堂а√在线中文在线| 成人在线免费高清视频| 免费看国产一级片| 91精品国产91久久久久麻豆 主演| 国产 欧美 日韩 一区| 丝袜老师办公室里做好紧好爽| 亚洲不卡中文字幕无码| 亚洲一区二区三区免费看| 狠狠色丁香久久婷婷综合_中| 两个人看的免费完整在线观看| 日本成人三级电影网站| av免费精品一区二区三区| 欧美一区二区三区在线播放| 日本一区二区三区视频在线观看 | 999香蕉视频| 97在线观看免费高清视频| 少妇一晚三次一区二区三区| 999在线观看精品免费不卡网站| 欧美大片在线观看| 欧美在线一二三| 中文字幕日韩av| 91精品国产91久久久| 色视频一区二区三区| 爽爽视频在线观看| 免费福利视频一区| 国产午夜精品在线观看| 精品视频偷偷看在线观看| 国产精品亚洲不卡a| 伊人久久青青草| 第一会所亚洲原创| 亚洲精品你懂的| 成人激情视频在线| 亚洲精品无码专区在线播放| 天天做天天爱天天爽综合网| 日本一区二区不卡视频| 国产精品7m视频| 在线免费黄色毛片| 亚洲精品国产日韩| 欧美大片一区二区三区| 成人午夜免费在线视频| 欧美7777| 国产美女久久久久| 久久影院免费观看| 国产中文字幕乱人伦在线观看| 久草免费在线视频| 91免费看`日韩一区二区| 久久精品91久久久久久再现| 黄色网址三级| 视频一区二区三区中文字幕| 美女亚洲一区| 欧美一级大黄| 久久精品国产清高在天天线| 在线成人免费观看| 国产天堂在线播放| 亚洲h色精品| 欧美日产国产精品| 成 年 人 黄 色 大 片大 全| 免费观看一级欧美片| 亚洲欧洲日韩av| 日韩精品久久久免费观看| 亚洲国产一区二区三区网站| 欧美午夜片欧美片在线观看| www国产免费| 成人在线电影在线观看视频| 亚洲欧美福利视频| 色综合天天色综合| 日韩av二区在线播放| 欧美激情性做爰免费视频| 看黄网站在线观看| 亚洲欧洲成人自拍| 成人午夜视频免费观看| 希岛爱理一区二区三区| 亚洲性视频网址| 免费日韩视频在线观看| 狠久久av成人天堂| 久久69精品久久久久久久电影好 | 在线看国产一区二区| 久久精品一区二| 99热这里只有精品8| 欧美一级视频一区二区| 午夜欧美激情| 精品视频在线免费观看| 日本午夜免费福利视频| jiyouzz国产精品久久| 神马影院我不卡| 最新亚洲视频| 国产精品18久久久久久首页狼 | 日日夜夜精品网站| 黄色av成人| 欧美一区二区三区艳史| 日韩经典一区| 日韩精品中文字幕在线不卡尤物| 日韩电影在线观看完整版| 久久综合色一综合色88| 国产欧美123| 国模大尺度一区二区三区| 亚洲高清不卡一区| 香蕉久久网站| 国产精品丝袜视频| 99国产精品一区二区| 97久久精品视频| 亚洲精品一区国产| 欧美激情精品久久久久久久变态 | 99精品电影| 国产精品91在线观看| 欧美视频免费| 国产精品一区二区三区免费视频 | 日本aⅴ写真网站免费| 亚洲在线免费播放| 三上悠亚一区| 亚洲综合成人在线视频| 亚洲性图一区二区| 国产精品网站导航| 成人18免费入口| 国产视频一区二区三区在线观看| 亚洲成人av免费看| 国产精品入口麻豆九色| 自拍偷拍亚洲视频| 久久大片网站| 欧美自拍偷拍| 欧美激情二区| 久久av网站| 国语自产精品视频在线看一大j8| 国产三级在线播放| 亚洲成人精品在线| 欧美色网在线| 永久免费毛片在线播放不卡| 成人免费无遮挡| 色综合久久88| 久久精品国产68国产精品亚洲| 国产精品视频网站| 国产精品日本欧美一区二区三区| 激情五月综合色婷婷一区二区| 国产乱理伦片在线观看夜一区| 国产午夜大地久久| 亚洲二区在线视频| av亚洲在线| 亚洲美女激情视频| 欧美黑白配在线| 亚洲www视频| 美女视频黄 久久| 中文字幕www| 欧美一区二区三区免费在线看| 日韩精品99| 久久久爽爽爽美女图片| 日韩欧美黄色| 欧美一级日本a级v片| 成人午夜电影网站| 国产在线观看网站| 上原亚衣av一区二区三区| 亚洲视频分类| 中文字幕一区二区三区四区五区| 国产精品美女久久久久aⅴ| 翔田千里在线视频| 久久久精品美女| 99国内精品| av黄色免费在线| 欧美精品一区二区三区四区| **精品中文字幕一区二区三区| av资源站久久亚洲| 国产女人18水真多18精品一级做| 麻豆视频在线免费观看| 538国产精品视频一区二区| 91视频一区| 欧美综合在线播放| 国产亚洲精品久久久优势 | 一区二区三区视频免费| 亚洲成人中文| 日本aaa在线观看|