日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大型网站架构演进的五大阶段盘点

發(fā)布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大型网站架构演进的五大阶段盘点 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一個創(chuàng)業(yè)公司起步時很可能就兩臺機器,一臺Web 服務器、一臺數(shù)據(jù)庫服務器,在一個應用系統(tǒng)中集成了所有功能模塊,但隨著業(yè)務的發(fā)展、流量的增長,單應用遠遠不能滿足業(yè)務需求。

下面我們一同來聊聊網(wǎng)站架構發(fā)展所經(jīng)歷的幾次主要演進,包括:從PHP 到Java 的改造、分布式改造、無線化改造、中臺的改造、國際化改造。

階段一 從PHP 到Java

很多網(wǎng)站早期都是基于Linux+Apache+MySQL+PHP 架構的網(wǎng)站,從當時來看,這種非常流行的個人網(wǎng)站架構的確也非常匹配當時的發(fā)展狀態(tài)。PHP 語言的特性是快速發(fā)布,從頁面渲染到數(shù)據(jù)庫訪問,均可以在一個頁面里全部搞定。

即使放到今天,這種架構仍然還有很多人在用,它的優(yōu)點就是非常簡單高效,但缺點也非常明顯:擴展性和分布式不好,不適合企業(yè)級的、復雜業(yè)務邏輯的大規(guī)模協(xié)同開發(fā)。

隨著網(wǎng)站的發(fā)展,大家覺得應該將PHP 切換到Java。為什么要切換到Java 語言呢?一般來說,企業(yè)選擇開發(fā)語言會有如下考慮。

(1)語言本身的特性。每種語言開發(fā)出來都有它的特性和所適合的場景,像Python、PHP 這類腳本語言非常適合快速簡單的開發(fā)方式,而Java 則比較適合構建復雜業(yè)務邏輯的企業(yè)級開發(fā),但是開發(fā)效率會比PHP 要差一點。

(2)程序員隊伍。企業(yè)選擇何種開發(fā)語言,還要看市場上的人才隊伍是不是足夠,是不是有很高層次的人才。是否有高層次的人才,取決于當前的行業(yè)老大是不是也在用這種語言,比如當前的頂級互聯(lián)網(wǎng)公司如果在用Java,那么自然這些公司的Java人才比較多,這樣,他們的經(jīng)驗可以被快速復制到其他公司中。

(3)語言所對應的工具生態(tài)是否完善。一個語言是否有生命力,要看這個語言對應的生態(tài)工具是否完善,它的社區(qū)是否活躍。因為我們要用到各種工具,而我們也不可能自己去寫每種工具,因此,是否能方便地利用開源工具,快速提升開發(fā)效率也是非常關鍵的。像現(xiàn)在很多大公司開源了很多Java 的中間件產(chǎn)品,這些中間件可以直接拿來使用,就不需要再重新開發(fā)了。

綜合以上因素,電商網(wǎng)站選擇Java 語言作為主要的系統(tǒng)開發(fā)語言是非常合適的。

從PHP 切換到Java 后,整個網(wǎng)站采用WebX+EJB+iBatis+JBoss+Oracle(后面又將EJB 改成Spring)的架構,但是隨著業(yè)務量的不斷增大,存儲層的瓶頸暴露出來。

為了解決存儲問題,就逐漸用上了非常昂貴的IBM 小型機、Oracle 的數(shù)據(jù)庫以及EMC的高端存儲(IOE);并對數(shù)據(jù)庫做了分庫的拆分,分布式緩存(Tair)也隨之誕生,分布式文件系統(tǒng)TFS 開始出現(xiàn),CDN 也慢慢建立了。

階段二 分布式改造

所謂分布式改造,就是盡量讓系統(tǒng)無狀態(tài)化,或者讓有狀態(tài)的信息封裝在一定范圍內,以免限制應用的橫向擴展。簡單來說,就是即便某個應用的少數(shù)服務器“宕”掉,也不會影響整體業(yè)務的穩(wěn)定性。

要實現(xiàn)應用的分布式改造必須先解決以下幾個問題。

(1)把應用微服務化:即將大量粗粒度的應用邏輯拆小,做服務化改造。

(2)必須先建立分布式服務框架。必須具備分布式RPC 框架、異步消息系統(tǒng)、分布式數(shù)據(jù)層、分布式文件系統(tǒng)、服務的發(fā)現(xiàn)、注冊和管理。

(3)必須要解決分布式Session 問題。

為了做業(yè)務的服務化改造,我們大量拆分了當時的業(yè)務系統(tǒng),形成了商品中心、交易中心、用戶中心、店鋪中心。這些服務作為底層服務供上層的前臺系統(tǒng)調用,此時的系統(tǒng)架構變成了下面的形式。

現(xiàn)在來看,系統(tǒng)的分布式改造為網(wǎng)站接下來5 年的發(fā)展奠定了很好的基礎,整個網(wǎng)站的擴展性非常好。幾乎每個初創(chuàng)企業(yè)都必須經(jīng)歷一次分布式化的改造,才能為企業(yè)的長期發(fā)展奠定基礎。筆者前面提及的幾個重要的中間件產(chǎn)品和關鍵的分布式Session 等技術在《深入分析Java Web 技術內幕(修訂版)》一書中有詳細的介紹,感興趣的讀者可以自行去學習了解。

階段三 無線化改造

到了2013 年,無線技術已經(jīng)非常火爆了。在此之前,無線的業(yè)務總是跟著PC 走,基本上是PC 做好后無線再復制一份,而且無線和PC 還不是同一個前臺系統(tǒng),導致一個功能要做兩遍,并且無線部門的開發(fā)人員本來就不多。這些給業(yè)務的發(fā)展帶來很多問題。因此2013 年底,啟動了All in 無線項目,目標就是用一套系統(tǒng)、一套架構快速支撐多端的個性化,并在服務端做了很多模塊化和組件化的改造。

隨著無線技術的發(fā)展,我們也開始嘗試一些新技術,最具代表性的就是Node。

Node 在業(yè)界很火,前端同學非常推崇,而且它也大幅提升了前端的開發(fā)效率和體驗。

目前大家也多方嘗試使用Node 技術,并且用在一些業(yè)務線上。但是,從今天來看,Node 并沒有達到我們想象中的發(fā)展前景。這其中有多種原因,本書的后續(xù)章節(jié)會專門介紹網(wǎng)站的無線化改造實踐,也將分享Node 在實際使用中的一些思考。

經(jīng)過無線化改造的應用系統(tǒng)架構如圖。

階段四 中臺改造

中臺這個概念早期是由美軍的作戰(zhàn)體系演化而來,技術上的“中臺”主要是指學習這種高效、靈活和強大的指揮作戰(zhàn)體系。電商經(jīng)過十幾年的發(fā)展,組織已經(jīng)龐大而復雜,業(yè)務不斷細化拆分,也導致野蠻發(fā)展的系統(tǒng)越來越不可維護,開發(fā)和改造效率極低,也有很多新業(yè)務不得不重復造輪子,所以中臺的目標是為了解決效率問題,同時降低創(chuàng)新成本。

階段五 國際化

國際化一般會有兩種思路:一種是一套原始代碼部署到多個地方,各地的系統(tǒng)基本沒有什么關聯(lián)、保持相互獨立,每個地方再根據(jù)本地實際情況做一些個性化的定制。一般來說,會精簡原始代碼,減少不必要的依賴。這種思路在一些跨國公司用得比較多,但是這個對技術要求比較低。

另一種思路就是我們所說的國際化,它主要是解決如何將一套系統(tǒng)部署到多地的問題。一般國際化有兩個發(fā)展階段:第一個階段是在國內實現(xiàn)了交易的單元化;第二個階段是實現(xiàn)了中美的跨國部署。

國際化的本質仍然是要解決以下的通用問題:多語言問題、多時區(qū)問題、數(shù)據(jù)路由問題、全球數(shù)據(jù)的同步與復制問題。

本文摘自《大型網(wǎng)站技術架構演進與性能優(yōu)化》一書前言,作者許令波 ,電子工業(yè)出版社6月出版。

羅馬不是一天建成的,能夠支撐億級交易量的大型網(wǎng)站也不是一蹴而就的。作者以一名親歷者的身份,闡述了一個大型網(wǎng)站在數(shù)年時間內從雛形成長為巨人時所經(jīng)歷的技術選型思考、方案選擇,以及遇到的眾多性能瓶頸和優(yōu)化方案。

本書要表達的內容并不是簡單羅列所做過的事情,而主要是幫助讀者了解當網(wǎng)站遇到類似問題時,應如何思考不同的解決思路、為什么要這樣做、如何做出最終的方案選擇……

總結

以上是生活随笔為你收集整理的大型网站架构演进的五大阶段盘点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。