下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、論微服務(wù)架構(gòu)及其應(yīng)用摘要2016年7月,我所在的公司為全國(guó)各級(jí)人民檢察院開(kāi)發(fā)了行賄犯罪檔案互聯(lián) 網(wǎng)查詢系統(tǒng)的產(chǎn)品,我擔(dān)任系統(tǒng)架構(gòu)師職務(wù),主要負(fù)責(zé)軟件架構(gòu)和安全體系設(shè)計(jì) 的工作,該項(xiàng)目是基于互聯(lián)網(wǎng),為單位、企業(yè)和個(gè)人等公眾群體提供7*24小時(shí) 的查詢申請(qǐng)服務(wù),同時(shí)兼顧行賄犯罪預(yù)防宣傳。本文結(jié)合作者的實(shí)踐,以行賄犯 罪檔案互聯(lián)網(wǎng)查詢系統(tǒng)為例,論述微服務(wù)架構(gòu)及其應(yīng)用。首先概述我參與管理和 開(kāi)發(fā),并采用微服務(wù)架構(gòu)開(kāi)發(fā)的工作,然后具體描述微服務(wù)架構(gòu)的特點(diǎn),最后結(jié) 合項(xiàng)目描述軟件的架構(gòu),說(shuō)明該系統(tǒng)是如何采用微服務(wù)架構(gòu)模式的,并說(shuō)明采用 微服務(wù)架構(gòu)模式后,在軟件開(kāi)發(fā)過(guò)程中遇到的實(shí)際問(wèn)題和解決方案。經(jīng)過(guò)項(xiàng)目組
2、 近一年的努力,本產(chǎn)品已順利開(kāi)發(fā)完成,目前,已在浙江、云南等多省上線使用, 取得客戶和公司領(lǐng)導(dǎo)的一致好評(píng)。正文近年來(lái),隨著互聯(lián)網(wǎng)行業(yè)的迅猛發(fā)展,公司或組織業(yè)務(wù)的不斷擴(kuò)張,需求的 快速變化以及用戶量的不斷增加,傳統(tǒng)的單塊(Monolithic)軟件架構(gòu)面臨著越 來(lái)越多的挑戰(zhàn),已逐漸無(wú)法適應(yīng)互聯(lián)網(wǎng)時(shí)代對(duì)軟件的要求。在這一背景下,微服 務(wù)架構(gòu)模式(Microservice Architecture Pattern)逐漸流行。它強(qiáng)調(diào)將單一業(yè) 務(wù)功能開(kāi)發(fā)成微服務(wù)的形式,每個(gè)微服務(wù)運(yùn)行在一個(gè)進(jìn)程中;采用HTTP等通信 協(xié)議和輕量級(jí)API實(shí)現(xiàn)微服務(wù)之間的協(xié)作與通信。這些微服務(wù)可以使用不同的開(kāi) 發(fā)語(yǔ)言以及不同
3、數(shù)據(jù)存儲(chǔ)技術(shù),能夠通過(guò)自動(dòng)化部署工具獨(dú)立發(fā)布,并保持最低 限制的集中式管理。2015年7月,我所在的公司為全國(guó)各級(jí)人民檢察院開(kāi)發(fā)了行賄犯罪檔案互聯(lián) 網(wǎng)查詢系統(tǒng)的產(chǎn)品,我擔(dān)任系統(tǒng)架構(gòu)師職務(wù),主要負(fù)責(zé)軟件架構(gòu)和安全體系設(shè)計(jì) 的工作。本文結(jié)合作者的實(shí)踐,論述微服務(wù)架構(gòu)及其應(yīng)用。首先概述我參與管理 和開(kāi)發(fā),并采用微服務(wù)架構(gòu)開(kāi)發(fā)的工作,然后具體描述微服務(wù)架構(gòu)的特點(diǎn),最后 結(jié)合項(xiàng)目描述軟件的架構(gòu),說(shuō)明該架構(gòu)是如何采用微服務(wù)架構(gòu)模式的,并說(shuō)明采 用微服務(wù)架構(gòu)模式后,在軟件開(kāi)發(fā)過(guò)程中遇到的實(shí)際問(wèn)題和解決方案。項(xiàng)目概述隨著互聯(lián)網(wǎng)的飛速發(fā)展,基于互聯(lián)網(wǎng)平臺(tái)建設(shè)行賄犯罪檔案查詢系統(tǒng)(Internet Bribery
4、 Crime Record Query IBCRQ),為單位、企業(yè)和個(gè)人等公 眾群體提供實(shí)時(shí)、高效、方便的申請(qǐng)查詢服務(wù),是互聯(lián)網(wǎng)+智慧檢察的深度融合, 也是社會(huì)經(jīng)濟(jì)發(fā)展的必然趨勢(shì)IBCRQ系統(tǒng)的建設(shè),作為政府采購(gòu)和招標(biāo)審查的 必經(jīng)關(guān)口,將有行賄犯罪記錄者拒之“門(mén)”夕外,大大降低了政府采購(gòu)、工程建設(shè) 等領(lǐng)域官商勾結(jié)、權(quán)錢(qián)交易的幾率,為有效預(yù)防賄賂、震懾犯罪提供了很好的積 極作用IBCRQ系統(tǒng)包括用戶注冊(cè)、個(gè)人查詢申請(qǐng)、單位查詢申請(qǐng)、集中查詢申 請(qǐng)、異議復(fù)核申請(qǐng)、排號(hào)管理、法律知識(shí)問(wèn)答、數(shù)據(jù)交換等業(yè)務(wù)模塊,實(shí)際使用 時(shí),用戶可根據(jù)實(shí)際情況的需要選擇是否需要用戶注冊(cè)、排號(hào)管理、法律知識(shí)問(wèn) 答等模塊自
5、由組合,限于篇幅,在此我們不再詳細(xì)介紹各個(gè)模塊的功能。微服務(wù)的目的是充分地分解應(yīng)用程序以促進(jìn)敏捷開(kāi)發(fā)和部署。在IBCRQ系統(tǒng) 項(xiàng)目的管理和開(kāi)發(fā)中,我們按功能需求將系統(tǒng)劃分為用戶中心、查詢申請(qǐng)、數(shù)據(jù) 交換、預(yù)約排號(hào)、法律知識(shí)問(wèn)答5個(gè)微服務(wù),同時(shí)將項(xiàng)目團(tuán)隊(duì)劃分為3個(gè)小組, 根據(jù)功能的輕重緩急和工作量,安排各個(gè)微服務(wù)的研發(fā)。每個(gè)小組負(fù)責(zé)一個(gè)或多 個(gè)組件完整的生命周期,即服務(wù)誰(shuí)開(kāi)發(fā),服務(wù)誰(shuí)運(yùn)營(yíng)。最后各個(gè)服務(wù)組件通過(guò) RESTful HTTP協(xié)議和消息路由功能進(jìn)行服務(wù)組裝。微服務(wù)架構(gòu)的特點(diǎn)傳統(tǒng)的單塊軟件架構(gòu)在構(gòu)建部署和擴(kuò)展伸縮方面有很大的局限性,傳統(tǒng)的單 塊架構(gòu)一般分為客戶端用戶界面、數(shù)據(jù)庫(kù)、服務(wù)端應(yīng)用
6、程序三部分。系統(tǒng)中任何 程序的改變都需要整個(gè)應(yīng)用重新構(gòu)建和部署新版本。另外傳統(tǒng)的單塊軟件架構(gòu)在 進(jìn)行水平擴(kuò)展時(shí)也只能整個(gè)系統(tǒng)擴(kuò)展,而不能針對(duì)某一個(gè)功能模塊進(jìn)行擴(kuò)展。而 微服務(wù)架構(gòu)可以完美的解決統(tǒng)一風(fēng)格架構(gòu)所遇到的種種問(wèn)題。微服務(wù)架構(gòu)將系統(tǒng) 以組件化的方式分解為多個(gè)服務(wù),服務(wù)之間相對(duì)獨(dú)立,單一功能的改變只需要重 新構(gòu)建部署相應(yīng)的服務(wù)即可。與單塊架構(gòu)相比,微服務(wù)架構(gòu)有如下的特點(diǎn):通過(guò)服務(wù)實(shí)現(xiàn)應(yīng)用的組件化(Componentization Via Services),在應(yīng)用架構(gòu)設(shè)計(jì)中,通過(guò)將整體應(yīng)用切分成可獨(dú)立部署及升級(jí)的微服務(wù)方式, 進(jìn)行組件化設(shè)計(jì)。圍繞業(yè)務(wù)能.力組織服務(wù)(Organized Ar
7、ound Business Capabilities), 微服務(wù)架構(gòu)采取以業(yè)務(wù)能力為出發(fā)點(diǎn)組織服務(wù)的策略,因此微服務(wù)團(tuán)隊(duì) 的組織結(jié)構(gòu)必須是跨功能的、強(qiáng)搭配的DevOps開(kāi)發(fā)運(yùn)維一體化團(tuán)隊(duì),通 常這些團(tuán)隊(duì)不會(huì)太大?;A(chǔ)設(shè)施自動(dòng)化(Infrastructure Automation),云化及自動(dòng)化部署等 技術(shù)極大地降低了微服務(wù)構(gòu)建、部署和運(yùn)維的難度,通過(guò)應(yīng)用持續(xù)集成 和持續(xù)交付等方法有助于達(dá)到加速推出市場(chǎng)的目的。故障處理設(shè)計(jì)(Design For Failure),微服務(wù)架構(gòu)所帶來(lái)的一個(gè)后果是 必須考慮每個(gè)服務(wù)的失敗容錯(cuò)機(jī)制。因此微服務(wù)非常重視建立架構(gòu)及業(yè) 務(wù)相關(guān)指標(biāo)的實(shí)時(shí)監(jiān)控和日志機(jī)制。演進(jìn)式的
8、設(shè)計(jì)(Evolutionary Design),微服務(wù)應(yīng)用更注重快速更新,因 此系統(tǒng)的計(jì)會(huì)隨時(shí)間不斷變化及演進(jìn)。微服務(wù)架構(gòu)應(yīng)用在IBCRQ系統(tǒng)中,采用通訊層、業(yè)務(wù)邏輯層、基礎(chǔ)服務(wù)層組成系統(tǒng)的微服務(wù) 架構(gòu)。如下圖所示:RESTRESTRESTIBCRQ系統(tǒng)微服務(wù)框架在微服務(wù)架構(gòu)下,我們選擇RESTful的進(jìn)行通訊。每個(gè)微服務(wù)都統(tǒng)一對(duì)外提 供REST服務(wù)。無(wú)論前端調(diào)用后端服務(wù)還是后端之間的服務(wù)調(diào)用都統(tǒng)一走 RESTful,這樣就統(tǒng)一了協(xié)議棧。微服務(wù)架構(gòu)可以支持各種異構(gòu)系統(tǒng)服務(wù)間的交 互。服務(wù)的注冊(cè)與發(fā)現(xiàn),服務(wù)之間需要?jiǎng)?chuàng)建一種服務(wù)發(fā)現(xiàn)機(jī)制,用于幫助服務(wù)之 間互相感知彼此的存在。服務(wù)啟動(dòng)時(shí)會(huì)將自身的服
9、務(wù)信息注冊(cè)到注冊(cè)中心,并訂 閱自己需要消費(fèi)的服務(wù)。負(fù)載均衡是服務(wù)高可用的保證手段,為了保證高可用,每一個(gè)微服務(wù)都需要 部署多個(gè)服務(wù)實(shí)例來(lái)提供服務(wù)。我們主要支持隨機(jī)、輪詢、最少鏈接數(shù)的策略將 來(lái)自網(wǎng)絡(luò)的請(qǐng)求隨機(jī)分配給內(nèi)部中的多個(gè)服務(wù)器。目前主流的RPC框架包括dubbo,thrift, grpc等,我們采用dubbo為團(tuán)隊(duì) 提供了一整套序列化,反序列化,網(wǎng)絡(luò)框架,連接池,線程池超時(shí)處理等業(yè)務(wù)處 理之外的能力。服務(wù)容錯(cuò)采用快速失敗,失效切換的策略。如果連續(xù)失敗多次則直接熔斷, 不再發(fā)起調(diào)用。這樣可以避免一個(gè)服務(wù)異常拖垮所有依賴于他的服務(wù)。遇到的問(wèn)題及解決方案在微服務(wù)實(shí)踐中,我們主要遇到三個(gè)問(wèn)題,一運(yùn)維開(kāi)銷及成本增加,因?yàn)槊?個(gè)微服務(wù)需獨(dú)立運(yùn)行,還可能采用多種語(yǔ)言環(huán)境,這將導(dǎo)致資源開(kāi)銷大;二代部 分碼重復(fù),某些底層功能需要被多個(gè)服務(wù)所用;第三個(gè)問(wèn)題是難以可視化及全面 測(cè)試,在動(dòng)態(tài)環(huán)境下服務(wù)間的交互會(huì)產(chǎn)生非常微妙的行為。因此,首先服務(wù)劃分 應(yīng)盡量合理,不要?jiǎng)澐痔?xì)太多,其次采用公共模塊的方式提供底層服務(wù),再次 微服務(wù)可通過(guò)監(jiān)控發(fā)現(xiàn)生產(chǎn)環(huán)境的異常,進(jìn)而快速回滾,彌補(bǔ)可測(cè)性不足的問(wèn)題。通過(guò)項(xiàng)目實(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年陜西學(xué)前師范學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)及答案詳解1套
- 2026年長(zhǎng)沙幼兒師范高等??茖W(xué)校單招職業(yè)技能考試題庫(kù)及完整答案詳解1套
- 2026年駐馬店職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及參考答案詳解1套
- 2026年寧波工程學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及參考答案詳解
- 2026年西南交通大學(xué)希望學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)及答案詳解一套
- 2026年陜西工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及答案詳解一套
- 2026年安慶醫(yī)藥高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫(kù)及參考答案詳解
- 2026年安徽黃梅戲藝術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及參考答案詳解一套
- 2026年北京北大方正軟件職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及參考答案詳解1套
- 2026年浙江省麗水市單招職業(yè)適應(yīng)性考試題庫(kù)及完整答案詳解1套
- 骨科傷口感染護(hù)理查房
- 護(hù)理清潔消毒滅菌
- 工會(huì)財(cái)務(wù)知識(shí)課件
- 裝修工程質(zhì)量保修服務(wù)措施
- 三維傷口掃描系統(tǒng):革新傷口評(píng)估模式的關(guān)鍵力量
- AI在體育領(lǐng)域的數(shù)據(jù)分析與預(yù)測(cè)
- 鈑金裝配調(diào)試工藝流程
- 腫瘤病人疼痛護(hù)理
- 醫(yī)療應(yīng)用的輻射安全和防護(hù)課件
- 項(xiàng)目經(jīng)理年底匯報(bào)
- 新生兒戒斷綜合征評(píng)分標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論