天天看點

360搜尋在微服務架構下的技術平台實踐(一) -- 單體架構

單體架構

單體架構是最常見的架構方式,将所有功能、業務邏輯都放在一個web容器中,成為一個應用。這就是我們常說的單體架構。

例如,我們有一個小型商城系統,那麼如下圖所示:

360搜尋在微服務架構下的技術平台實踐(一) -- 單體架構

在這裡,我們将所有的功能都放在一個web容器中,例如訂單管理、商品管理、支付功能、通知功能、購物車管理、物流相關等。

單體架構下,我們發現性能跟不上了,怎麼辦?

我們可以通過LoadBalance擴容,也就是找台機器,将web目錄拷過去,把web伺服器啟動,然後挂在我們的LVS下即可。

360搜尋在微服務架構下的技術平台實踐(一) -- 單體架構

但是,很明顯,單體架構下隻能線性、水準的擴充,不能做到某些功能更常用就擴充某些功能。

例如,我們在上面的例子中,發現購物車的通路量比 物流、支付 功能的通路量大了十倍。這個情況下,單體架構也隻能将整個應用都部署到其他機器上。

單體架構的優缺點

優點:

易于開發:在項目初期、小型項目的情況下,邏輯不複雜,功能也比較單一,開發起來很直覺也很友善。

易于部署:直接找一台機器,把目錄/war包 拷過去啟動web服務就可以用。

易于水準擴容:直接找一台機器,把目錄/war包 拷過去啟動web服務,然後挂在LVS下即可。

缺點:

過載的web容器:所有的功能都在一個war包中。

難以持續內建:每次打包就得花半天

功能擴充困難:牽一發動全身,改一個,測全部

技術棧單一且易過時:其實我們做技術的人,都會有一定的技術追求,都希望用最酷的技術來做最酷的事情。但現在流行的技術,5年之後就已經老掉牙了,但你想對已有的單體架構做技術更新,代價大、困難大。最終隻能将錯就錯的維護,或者是花費很大代價重構。

對單體架構的介紹就到這裡,下一篇文章,将會帶來 微服務思想 的介紹

繼續閱讀