很多網(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也慢慢建立了。