从成本角度看Java微服务
近年來,微服務(wù)因其良好的靈活性和伸縮性等特點備受追捧,很多公司開始采用微服務(wù)架構(gòu)或?qū)⒁延械膯误w系統(tǒng)改造成微服務(wù)。IBM也于近日開源了輕量級Java微服務(wù)應(yīng)用服務(wù)器Open Liberty。但是采用Java開發(fā)微服務(wù)真的是最好的選擇嗎?來自JPmorgan的高級工程師Elliot Forbes基于自身的經(jīng)歷,從成本角度進(jìn)行分析,并與其他語言的微服務(wù)做了對比,很好地回答了這個問題。
\\Elliot所在的團(tuán)隊最初使用Java開發(fā)了一個單體系統(tǒng)。他們的生產(chǎn)環(huán)境總共有12臺服務(wù)器,每臺服務(wù)器上部署了20到30個實例,每個實例使用8G內(nèi)存。這樣,總共耗費了1.5T到2.5T內(nèi)存。后來,他們將單體拆解成5個微服務(wù),并使用容器來部署微服務(wù)。每個容器運行一個微服務(wù),因為是基于JVM的,所以至少需要1G內(nèi)存。原先的一個單體實例使用8G內(nèi)存,拆成微服務(wù)后總共只需要5G到6G內(nèi)存,省下了至少2G內(nèi)存。
\\但事情不會就這么簡單。他們當(dāng)中的一個微服務(wù)負(fù)責(zé)對外提供REST API,是整個系統(tǒng)最為關(guān)鍵的部分。為了提高可用性,他們在歐洲、北美和亞洲分別部署了4個實例。這樣一來,這個微服務(wù)總共使用了12G內(nèi)存,所以整體的內(nèi)存使用反而增加了不少。
\\而如果使用Go語言替代Java開發(fā)微服務(wù)會怎樣呢?每個微服務(wù)的內(nèi)存可以從1G降到64M,那么之前那個部署了12個實例的微服務(wù)總共只需要768M內(nèi)存,這比之前的單個Java微服務(wù)實例用的內(nèi)存還要少。
\\假設(shè)微服務(wù)是部署在谷歌云平臺上的,按照GCP的收費標(biāo)準(zhǔn),1G內(nèi)存每小時收費在1美分到2美分之間,一年大概需要87美元到175美元,那么12G內(nèi)存一年至少要花費1000美元。5個微服務(wù)加起來一年至少需要5000美元。而如果使用Go語言,這個數(shù)字差不多在500美元左右,可以說是減少了一個數(shù)量級。
\\不過Elliot也解釋說,成本只是在采用微服務(wù)時需要考慮的眾多因素當(dāng)中的一個。除了成本,還需要考慮開發(fā)語言適用性等方面的問題。不過對于大型企業(yè)來說,他們擁有大量的微服務(wù),成本仍然是一個重要的考慮因素,畢竟一年下來,有可能為他們節(jié)省數(shù)百萬美元。
\\感謝郭蕾對本文的審校。
\給InfoQ中文站投稿或者參與內(nèi)容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ,@丁曉昀),微信(微信號:InfoQChina)關(guān)注我們。
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的从成本角度看Java微服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cookie的简单学习
- 下一篇: C# TCPClient简单示例