從2015年6月百度離職后,加入創(chuàng)業(yè)公司到現(xiàn)在已經(jīng)將近兩年了。新系統(tǒng)的架構(gòu)隨著時(shí)間的推移做了非常多的變化以及調(diào)整,在這里對(duì)自己系統(tǒng)的架構(gòu)的演進(jìn)歷程以及為什么做這種優(yōu)化處理做一些總結(jié),并講述一下各個(gè)過程遇到的問題與解決方式。
在創(chuàng)業(yè)初期,為了趕上線進(jìn)度一開始的時(shí)候,一切以功能為主,且創(chuàng)業(yè)初期資金有限,沒有采購太多的服務(wù)器資源,因此系統(tǒng)在技術(shù)架構(gòu)層面沒有做太多的設(shè)計(jì),系統(tǒng)的所有資源都放在一個(gè)服務(wù)器上,此時(shí)系統(tǒng)的架構(gòu)可以如下:
在這個(gè)系統(tǒng)架構(gòu)上面,通過一個(gè)固定IP的Linux機(jī)器,使用Tomcat服務(wù)器搭建了僅面向PC的Web服務(wù)。在這種單服務(wù)應(yīng)用會(huì)存在的問題會(huì)存在的問題有:
服務(wù)不穩(wěn)定
由于每次代碼升級(jí)都需要重啟服務(wù),會(huì)造成服務(wù)有小段時(shí)間的停服情況。
服務(wù)器性能瓶頸
由于單個(gè)服務(wù)的并發(fā)能力有限(tomcat并發(fā)處理上線600tps就比較高),且業(yè)務(wù)和數(shù)據(jù)庫都部署在一個(gè)機(jī)器上面,隨著業(yè)務(wù)發(fā)展,對(duì)服務(wù)器性能的要求會(huì)越來越高。
JVM不方便調(diào)