深度解析與最佳實(shí)踐|微服務(wù)架構(gòu)如何運(yùn)用在投票平臺(tái)

微服務(wù)(Microservices)是一種化繁為簡(jiǎn)的架構(gòu)風(fēng)格,它提倡把一個(gè)大型的單個(gè)應(yīng)用程序和服務(wù)拆分為數(shù)個(gè)甚至數(shù)十個(gè)微服務(wù),每個(gè)服務(wù)僅關(guān)注于完成一項(xiàng)任務(wù)。比如投票系統(tǒng),可以按照業(yè)務(wù)需求細(xì)分為征集、投票、問(wèn)卷等多個(gè)獨(dú)立的子系統(tǒng),這種拆解方法使軟件系統(tǒng)中的各項(xiàng)服務(wù)都能單獨(dú)開(kāi)發(fā)、部署和測(cè)試,極大地提高了系統(tǒng)的靈活性和可維護(hù)性。

一、微服務(wù)架構(gòu)的十大優(yōu)勢(shì)

對(duì)于大型企業(yè)軟件而言,隨著業(yè)務(wù)需求增加,軟件系統(tǒng)龐大臃腫、難以維護(hù)的問(wèn)題接踵而來(lái),微服務(wù)架構(gòu)則應(yīng)勢(shì)成為解決單體架構(gòu)各種難題的良藥,之所以備受關(guān)注,主要因?yàn)槠湟韵聝?yōu)勢(shì):

1、靈活性:根據(jù)業(yè)務(wù)的需求,不同的服務(wù)可以結(jié)合項(xiàng)目本身的特性進(jìn)行不同的技術(shù)選型,提高軟件效能。

2、易存儲(chǔ):每個(gè)微服務(wù)都有自己的存儲(chǔ)能力,可以使用自己的數(shù)據(jù)庫(kù),同樣可以選擇統(tǒng)一數(shù)據(jù)庫(kù)。

3、高性能:當(dāng)服務(wù)在壓力較大時(shí),不會(huì)出現(xiàn)性能瓶頸,引入的相關(guān)依懶性很小,也可以有更多容錯(cuò)或限流服務(wù)。

4、易部署:微服務(wù)相關(guān)應(yīng)用可以獨(dú)立開(kāi)發(fā)和部署,單個(gè)微服務(wù)的修改不需要協(xié)調(diào)其他服務(wù)。

5、易測(cè)試:獨(dú)立性的特點(diǎn)使微服務(wù)依賴比較少,測(cè)試環(huán)節(jié)只需要聚焦在功能,提高效率。

6、易監(jiān)控:完善的日志記錄,出現(xiàn)問(wèn)題及時(shí)報(bào)警,隨時(shí)監(jiān)控系統(tǒng)運(yùn)行狀態(tài)和各項(xiàng)指標(biāo)。

7、可伸縮:每個(gè)服務(wù)都可按硬件資源的需求進(jìn)行獨(dú)立擴(kuò)容。

8、易遷移:微服務(wù)體量較小,功能較單一,這使得移植工作更容易,便于和第三方集成。

9、分工明確:微服務(wù)架構(gòu)可以更好將架構(gòu)和組織相匹配,每個(gè)團(tuán)隊(duì)獨(dú)立負(fù)責(zé)某些服務(wù),分工明確,責(zé)任清晰,以此獲得更高的生產(chǎn)力。

10、技術(shù)異構(gòu)性:微服務(wù)允許單獨(dú)使用最適合該服務(wù)的技術(shù),降低嘗試新技術(shù)的成本。

從微服務(wù)架構(gòu)的優(yōu)勢(shì)可以看出,它區(qū)別于單體系統(tǒng)的地方就在于“分而治之”,通過(guò)拆分服務(wù)以明確模塊或者功能邊界,然而實(shí)踐證明,僅僅有“分”是不行的,軟件系統(tǒng)終究是一個(gè)整體,很多功能來(lái)自若干服務(wù)模塊的配合,所以需要開(kāi)發(fā)人員根據(jù)實(shí)際的應(yīng)用業(yè)務(wù)打造自身特色的產(chǎn)品模式。

二、微服務(wù)架構(gòu)實(shí)踐案例

關(guān)于如何具體實(shí)踐微服務(wù)架構(gòu),全媒體一體化平臺(tái)“光明云投”研發(fā)負(fù)責(zé)人田崇強(qiáng)表示:“過(guò)去的業(yè)務(wù),我們通常會(huì)考慮各種各樣的依賴關(guān)系,考慮系統(tǒng)耦合帶來(lái)的問(wèn)題。微服務(wù)提倡采用“產(chǎn)品模式”構(gòu)建,即更傾向于讓團(tuán)隊(duì)負(fù)責(zé)整個(gè)服務(wù)的生命周期,這可以讓“光明云投”的開(kāi)發(fā)者更專注于業(yè)務(wù)的邏輯開(kāi)發(fā),以便提供更優(yōu)質(zhì)的服務(wù)。”

“光明云投”研發(fā)負(fù)責(zé)人 田崇強(qiáng)

(一)有效拆分應(yīng)用,實(shí)現(xiàn)敏捷開(kāi)發(fā)和部署

田崇強(qiáng)說(shuō):“兩年前,為了提高“光明云投”的系統(tǒng)性能和工作效率,在全面分析業(yè)務(wù)需求和對(duì)當(dāng)下各種架構(gòu)方案進(jìn)行調(diào)研后,我們最終決定對(duì)系統(tǒng)進(jìn)行優(yōu)化,循序漸進(jìn)引入微服務(wù)風(fēng)格的架構(gòu)方案。概括來(lái)講,主要是以“光明云投”的各項(xiàng)業(yè)務(wù)為中心,將系統(tǒng)拆分為征集、投票、問(wèn)卷、專家審核、用戶等多個(gè)相互獨(dú)立業(yè)務(wù)子系統(tǒng)。選用發(fā)展成熟的Spring Cloud微服務(wù)技術(shù)棧,并結(jié)合Docker+K8S容器化技術(shù)進(jìn)行平臺(tái)構(gòu)建?!?/p>

(二)提供垂直服務(wù),活動(dòng)舉辦成本豐儉由己

田崇強(qiáng)進(jìn)一步提到,使用微服務(wù)的風(fēng)格的架構(gòu),“光明云投”被清晰拆分為一個(gè)個(gè)獨(dú)立的子系統(tǒng),對(duì)于使用“光明云投”的客戶和活動(dòng)參與者都帶來(lái)了諸多便利:

第一,在活動(dòng)舉辦之前,客戶可以根據(jù)自身的實(shí)際需求選購(gòu)必要的服務(wù)模塊?;顒?dòng)進(jìn)行期間,客戶也能根據(jù)活動(dòng)實(shí)時(shí)情況,比如面對(duì)超預(yù)期的用戶參與高峰,仍可以快速對(duì)服務(wù)進(jìn)行橫向擴(kuò)展,為活動(dòng)參與者提供更穩(wěn)定、更流暢的用戶體驗(yàn)。這種自由選擇服務(wù)模塊的方式,可以說(shuō)真正做到了成本豐儉由己。

第二,微服務(wù)架構(gòu)風(fēng)格的分布式系統(tǒng),使得“光明云投”系統(tǒng)本身更加健壯,客戶不必再擔(dān)心由于單個(gè)服務(wù)環(huán)節(jié)壓力大而導(dǎo)致整個(gè)系統(tǒng)崩潰,從而導(dǎo)致活動(dòng)中斷。

第三,由于微服務(wù)架構(gòu)的獨(dú)立性和靈活性,客戶的定制開(kāi)發(fā)需求能夠得到更快速的響應(yīng),定制需求的成本也會(huì)降低。

“光明云投”功能介紹

采用了微服務(wù)架構(gòu)的全媒體一體化平臺(tái)“光明云投”是中央重點(diǎn)新聞網(wǎng)站光明網(wǎng)的特色產(chǎn)品,多年來(lái)為政府機(jī)構(gòu)和企事業(yè)單位的征集、投票、評(píng)選活動(dòng)提供一站式技術(shù)服務(wù),可支持一鍵上傳圖片、文字、音頻、視頻、H5等全媒體體裁作品,不限制參賽選手?jǐn)?shù)量、不限制舉辦活動(dòng)次數(shù),擁有著優(yōu)質(zhì)的前臺(tái)體驗(yàn)和安全穩(wěn)定的后臺(tái)系統(tǒng),目前已支持過(guò)上百場(chǎng)大型評(píng)選、調(diào)查活動(dòng),獲得了所服務(wù)客戶的高度認(rèn)可。

?“光明云投”(https://vote.gmw.cn/)采用微服務(wù)的架構(gòu),其實(shí)更多的是研發(fā)思維上的轉(zhuǎn)變,要知道技術(shù)從來(lái)不是問(wèn)題,意識(shí)比工具重要,單純的微服務(wù)架構(gòu)并不能成為萬(wàn)能良藥,更需要的是在實(shí)施過(guò)程中,將業(yè)務(wù)、技術(shù)和運(yùn)維有機(jī)結(jié)合起來(lái),才能利用微服務(wù)架構(gòu)有效提升軟件系統(tǒng)的性能。(作者:鄭蕾)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容