• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SpringBoot微服務(wù)架構(gòu)的城市一卡通手機(jī)充值支撐系統(tǒng)研究

      2018-01-23 12:38:19溫曉麗蘇浩偉陳歡鄒大畢
      電子產(chǎn)品世界 2017年10期
      關(guān)鍵詞:體系架構(gòu)微服務(wù)

      溫曉麗+蘇浩偉+陳歡+鄒大畢

      摘要:基于微服務(wù)架構(gòu)而構(gòu)建的應(yīng)用系統(tǒng)是將復(fù)雜的大系統(tǒng)分解成了一系列小的單獨(dú)的子服務(wù)系統(tǒng),這些子服務(wù)系統(tǒng)可以單獨(dú)部署發(fā)布,也可以組合成一個(gè)應(yīng)用發(fā)布。伴隨著移動(dòng)互聯(lián)網(wǎng)應(yīng)用的快速發(fā)展,相應(yīng)的服務(wù)系統(tǒng)更新迭代頻繁,采用微服務(wù)架構(gòu)之后的系統(tǒng)可以很好地適應(yīng)移動(dòng)互聯(lián)網(wǎng)這種需求不斷迭代更新的應(yīng)用場(chǎng)景。城市一卡通手機(jī)充值系統(tǒng)是城市一卡通公司在移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的應(yīng)用服務(wù)系統(tǒng),同樣地面臨著業(yè)務(wù)不斷快速迭代更新的需求,基于此,進(jìn)行城市一卡通手機(jī)充值支撐系統(tǒng)的構(gòu)建過(guò)程中采用了基于SpringBoot微服務(wù)架構(gòu)的研究是必要和有參考意義的。

      關(guān)鍵詞:交通信息化:手機(jī)充值;體系架構(gòu);微服務(wù)

      DOI: 10.3969/j.issn.1005-5517.2017.9.014

      引言

      隨著時(shí)代的發(fā)展,在信息系統(tǒng)建設(shè)方面,傳統(tǒng)IT架構(gòu)面臨著以下一些問(wèn)題:

      1)使用傳統(tǒng)的整體式架構(gòu)(M。n olithicArchitecture)應(yīng)用開發(fā)系統(tǒng),如CRM、ERP等大型應(yīng)用,隨著新需求的不斷增加,企業(yè)更新和修復(fù)大型整體式應(yīng)用變得越來(lái)越困難。在系統(tǒng)更新時(shí),往往牽一發(fā)而動(dòng)全身,稍有不慎就可能帶來(lái)大的損失。

      2)隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,企業(yè)被迫將其應(yīng)用遷移至現(xiàn)代化UI界面架構(gòu)以便能兼容移動(dòng)設(shè)備,這要求企業(yè)能實(shí)現(xiàn)應(yīng)用功能的快速上線,而傳統(tǒng)IT架構(gòu)在系統(tǒng)快速迭代更新方面難度較大。

      3)隨著應(yīng)用云化的日益普及,生于云端的應(yīng)用具有與傳統(tǒng)IT不同的技術(shù)基因和開發(fā)運(yùn)維模式,此時(shí)再生搬硬套傳統(tǒng)IT架構(gòu)往往會(huì)產(chǎn)生適得其反的效果。

      4)移動(dòng)互聯(lián)網(wǎng)相關(guān)技術(shù)快速發(fā)展,云計(jì)算及互聯(lián)網(wǎng)公司大量開源輕量級(jí)技術(shù)不停涌現(xiàn)并日漸成熟,主要為如下幾方面:互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)/網(wǎng)絡(luò)更加成熟,輕量級(jí)運(yùn)行時(shí)技術(shù)的出現(xiàn)(node.js等),新的方法與工具(Agile、DevOps、TDD、CI及XP),新的輕量級(jí)協(xié)議(RESTful API接口和輕量級(jí)消息機(jī)制),簡(jiǎn)化的基礎(chǔ)設(shè)施,操作系統(tǒng)虛擬化(hypervisors)、容器化(Docker)、基礎(chǔ)設(shè)施即服務(wù)(laaS)、工作負(fù)載虛擬化(Kubernetes、Spark)等;服務(wù)平臺(tái)化(PaaS),云服務(wù)平臺(tái)上具有自動(dòng)縮放、工作負(fù)載管理、SLA管理、消息機(jī)制、緩存、構(gòu)建管理等各種按需使用的服務(wù),新的可替代數(shù)據(jù)持久化模型:如NoSQL、MapReduce、BASE、CQRS等,標(biāo)準(zhǔn)化代碼管理等。

      這一切都催生了新的架構(gòu)設(shè)計(jì)風(fēng)格,即微服務(wù)架構(gòu)的出現(xiàn)。

      1 微服務(wù)架構(gòu)概述

      微服務(wù)是一種架構(gòu)風(fēng)格,一個(gè)大型復(fù)雜軟件應(yīng)用由一個(gè)或多個(gè)微服務(wù)組成。系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在所有情況下,每個(gè)任務(wù)代表著一個(gè)小的業(yè)務(wù)能力。

      微服務(wù)具備彈性和伸縮性。微服務(wù)不只依賴單個(gè)服務(wù)器和部署,它們可以被發(fā)布到多個(gè)機(jī)器上,或者多個(gè)數(shù)據(jù)中心及其它任何可用的區(qū)域。如果一個(gè)服務(wù)失效,可以啟動(dòng)另外一個(gè)。因?yàn)檎麄€(gè)應(yīng)用被分解成了微服務(wù)(小型服務(wù)),可以很容易地對(duì)其中某些熱門的服務(wù)進(jìn)行橫向擴(kuò)展。

      微服務(wù)一般會(huì)提供基于HTTP/JSON的API端點(diǎn)。這樣可以很容易地與其它服務(wù)(開源或閉源的)集成,只要這些服務(wù)提供了HTTP/JSON接口。服務(wù)可以通過(guò)更有意義的方式被消費(fèi)、被組合。

      1.1 與整體架構(gòu)的比較

      整體架構(gòu)把所有功能都放到一個(gè)進(jìn)程中,如圖1所示,其中每個(gè)形狀塊代表一個(gè)功能;而微服務(wù)架構(gòu)會(huì)將不同的功能放置到分離的多個(gè)服務(wù)進(jìn)程中,如圖2所示。

      在系統(tǒng)服務(wù)能力需要擴(kuò)展時(shí),采用整體架構(gòu)的系統(tǒng)只能復(fù)制整個(gè)系統(tǒng)到多個(gè)服務(wù)器上,如圖3所示:而采用微服務(wù)架構(gòu)的系統(tǒng)則僅根據(jù)不同服務(wù)的服務(wù)負(fù)載能力需求來(lái)決定復(fù)制到多少個(gè)服務(wù)器上,如圖4所示。

      1.2 微服務(wù)架構(gòu)的優(yōu)點(diǎn)

      1)每個(gè)服務(wù)都比較簡(jiǎn)單,只關(guān)注于一個(gè)業(yè)務(wù)功能;

      2)微服務(wù)架構(gòu)方式是松耦合的,可以提供更高的靈活性;

      3)微服務(wù)可通過(guò)最佳及最合適的不同的編程語(yǔ)言與工具進(jìn)行開發(fā),能夠做到有的放矢地解決針對(duì)性問(wèn)題:

      4)每個(gè)微服務(wù)可由不同團(tuán)隊(duì)獨(dú)立開發(fā),互不影響,加快推出市場(chǎng)的速度;

      5)微服務(wù)架構(gòu)是持續(xù)交付(CD)的巨大推動(dòng)力,允許在頻繁發(fā)布不同服務(wù)的同時(shí)保持系統(tǒng)其他部分的可用性和穩(wěn)定性。

      1.3 微服務(wù)架構(gòu)的缺點(diǎn)

      微服務(wù)的一些想法在實(shí)踐上是好的,但當(dāng)整體實(shí)現(xiàn)時(shí)也會(huì)呈現(xiàn)出其復(fù)雜性,主要約束性體現(xiàn)在如下幾個(gè)方面:

      1)運(yùn)維開銷及成本增加:整體應(yīng)用可能只需部署至一小片應(yīng)用服務(wù)區(qū)集群,而微服務(wù)架構(gòu)可能變成需要構(gòu)建/測(cè)試部署、運(yùn)行數(shù)十個(gè)獨(dú)立的服務(wù),并可能需要支持多種語(yǔ)言和環(huán)境。

      2)代碼重復(fù):某些底層功能需要被多個(gè)服務(wù)所用,為了避免將“同步耦合引入到系統(tǒng)中”,有時(shí)需要向不同服務(wù)添加一些代碼,這就會(huì)導(dǎo)致代碼重復(fù)。

      3)分布式系統(tǒng)的復(fù)雜性:作為一種分布式系統(tǒng),微服務(wù)引入了復(fù)雜性和其他若干問(wèn)題,例如網(wǎng)絡(luò)延遲、容錯(cuò)性、消息序列化、不可靠的網(wǎng)絡(luò)、異步機(jī)制、版本化、差異化的工作負(fù)載等,開發(fā)人員需要考慮以上的分布式系統(tǒng)問(wèn)題。

      4)可測(cè)性的挑戰(zhàn):在動(dòng)態(tài)環(huán)境下服務(wù)間的交互會(huì)產(chǎn)生非常微妙的行為,難以可視化及全面測(cè)試。經(jīng)典微服務(wù)往往不太重視測(cè)試,更多的是通過(guò)監(jiān)控發(fā)現(xiàn)生產(chǎn)環(huán)境的異常,進(jìn)而快速回滾或采取其他必要的行動(dòng)。但對(duì)于特別在意風(fēng)險(xiǎn)規(guī)避監(jiān)管或投產(chǎn)環(huán)境錯(cuò)誤會(huì)產(chǎn)生顯著影響的場(chǎng)景下需要特別注意。

      1.4 哪些應(yīng)用系統(tǒng)適用微服務(wù)架構(gòu)

      1)記錄型系統(tǒng)(System of Record)適用微服務(wù)架構(gòu),例如可將大型應(yīng)用按相對(duì)獨(dú)立的業(yè)務(wù)功能分解成若干個(gè)微服務(wù)實(shí)現(xiàn)。endprint

      2)交互型系統(tǒng)(System of Engagement)也較為適用微服務(wù)架構(gòu),例如渠道應(yīng)用可以應(yīng)用“后端服務(wù)前端”的模式實(shí)現(xiàn)。

      3)分析型系統(tǒng)(System of Insight)則不適用于微服務(wù)架構(gòu),其適用于其他架構(gòu)模式如管道及過(guò)濾模式。

      2 Spring Boot分析

      2.1 Spring Boot概述

      Spring Boot是Java領(lǐng)域中知名的微服務(wù)系統(tǒng)構(gòu)架框架,是由Pivotal團(tuán)隊(duì)提供的?;赟pring Boot框架,Java應(yīng)用程序的構(gòu)建簡(jiǎn)單易行。該框架具有以下特點(diǎn):

      1)簡(jiǎn)單的庫(kù)依賴管理,基于Maven配置文件,即可實(shí)現(xiàn)相關(guān)依賴庫(kù)的配置;

      2)自動(dòng)配置,框架自動(dòng)負(fù)責(zé)了大部分常規(guī)的配置,開發(fā)者無(wú)需手工配置:

      3)內(nèi)嵌支持Web服務(wù),易于發(fā)布為單獨(dú)web服務(wù)。

      2.2 Spring Boot優(yōu)點(diǎn)

      正是由于上述特點(diǎn),使得Spring Boot有以下優(yōu)點(diǎn):

      1)使編碼變簡(jiǎn)單。借助框架提供的各種注解(Annotation),較少的編碼即可實(shí)現(xiàn)豐富的服務(wù)功能。比如基于JPA框架的數(shù)據(jù)庫(kù)訪問(wèn),僅需聲明一個(gè)接口及相關(guān)函數(shù)定義(無(wú)需編寫實(shí)現(xiàn)),即可在其他進(jìn)行調(diào)用。

      2)使配置變簡(jiǎn)單。Spring有多種多樣的XMLConfig。Java Config或注解配置;而Boot僅需簡(jiǎn)單的properties或yml文件配置。

      3)使部署變簡(jiǎn)單。Boot可以將程序打包成一個(gè)jar文件,一鍵啟動(dòng),無(wú)需預(yù)部署各種應(yīng)用服務(wù)器。同時(shí),它對(duì)運(yùn)行環(huán)境的基本要求降低了,僅需JDK即可。

      4)使監(jiān)控變簡(jiǎn)單。通過(guò)Boot中的spring-boot-actuator庫(kù)即可實(shí)現(xiàn)對(duì)程序的監(jiān)控,可以通過(guò)http請(qǐng)求來(lái)查看其屬性配置、線程工作狀態(tài)、環(huán)境變量、JVM各種性能指標(biāo)等。

      由于微服務(wù)的目的在于化解整體架構(gòu)服務(wù)的復(fù)雜性,以簡(jiǎn)單快速的方式實(shí)現(xiàn)各個(gè)服務(wù)的實(shí)現(xiàn)、部署和變更。因此,Spring Boot的上述特點(diǎn)正好服務(wù)微服務(wù)構(gòu)建需求,同時(shí)Spring Boot還提供了形式多樣的庫(kù)(以spring-boot-開頭) ,支持JPA、RESTFul、Docker等技術(shù),更便于各種微服務(wù)的構(gòu)建。

      3 微服務(wù)架構(gòu)在城市一卡通手機(jī)充值支撐系統(tǒng)中的應(yīng)用

      3.1 總體架構(gòu)

      城市一卡通手機(jī)充值支撐系統(tǒng)是城市一卡通NFC手機(jī)充值的業(yè)務(wù)后端系統(tǒng),其功能主要包括:

      1)負(fù)責(zé)與前端系統(tǒng)對(duì)接,完成城市一卡通卡賬戶資金支付功能:

      2)負(fù)責(zé)與前端系統(tǒng)對(duì)接,實(shí)現(xiàn)城市一卡通卡圈存充值功能:

      3)負(fù)責(zé)與第三方支付系統(tǒng)對(duì)接,實(shí)現(xiàn)賬戶資金轉(zhuǎn)賬加值功能、賬單下載和對(duì)賬文件生成功能:

      4)負(fù)責(zé)與客服受理系統(tǒng)對(duì)接,實(shí)現(xiàn)用戶訂單管理等客服受理功能。

      3.2 微服務(wù)應(yīng)用

      基于城市一卡通手機(jī)充值支撐系統(tǒng)的業(yè)務(wù)需求,其需要提供以下具體服務(wù)功能:

      1)內(nèi)部服務(wù)功能:對(duì)接內(nèi)部聯(lián)機(jī)核心系統(tǒng),提供城市一卡通卡充值金賬戶查詢、充值金賬戶操作(加值、凍結(jié)、解凍等)等功能:

      2)基礎(chǔ)查詢服務(wù):對(duì)外提供城市一卡通卡相關(guān)的查詢類服務(wù):

      3)充值金商品服務(wù)系統(tǒng):主要負(fù)責(zé)城市一卡通卡充值金賬戶加值訂單相關(guān)服務(wù)功能,包括訂單創(chuàng)建、訂單查詢、訂單支付通知處理等:

      4)訂單支付服務(wù):對(duì)接第三方支付系統(tǒng),負(fù)責(zé)第三方支付的訂單創(chuàng)建、支付通知處理等服務(wù)功能;

      5)圈存服務(wù)系統(tǒng):對(duì)接前端服務(wù)系統(tǒng)(或第三方合作商系統(tǒng)),提供城市一卡通卡圈存充值交互的相關(guān)功能,包括圈存訂單創(chuàng)建、圈存初始化、圈存以及圈存提交等功能;它還負(fù)責(zé)與圈存后臺(tái)交互,傳輸相關(guān)指令數(shù)據(jù):

      6)對(duì)賬服務(wù):對(duì)接第三方支付系統(tǒng),負(fù)責(zé)充值賬單的下載和對(duì)賬處理。

      由此可見,上述功能相對(duì)獨(dú)立,適于引入微服務(wù)架構(gòu)。為此,我們?cè)O(shè)計(jì)了微服務(wù)架構(gòu),每個(gè)微服務(wù)均開放出REST API供前端或者其他系統(tǒng)調(diào)用,微服務(wù)之間的交互也是通過(guò)REST API進(jìn)行交互,其微服務(wù)架構(gòu)圖如圖5所示。

      基于此微服務(wù)架構(gòu)設(shè)計(jì),我們利用Spring Boot構(gòu)建了城市一卡通手機(jī)充值支撐系統(tǒng)的多個(gè)微服務(wù)系統(tǒng),并成功在廣州羊城通的手機(jī)QQ NFC充值、手環(huán)充值等項(xiàng)目進(jìn)行實(shí)踐,實(shí)踐結(jié)果是該微服務(wù)架構(gòu)是可行、有效的。

      4 結(jié)論

      本文首先介紹了微服務(wù)及架構(gòu)的發(fā)展背景以及其概念,并闡述了其特點(diǎn)及其適應(yīng)場(chǎng)景。其次,介紹了Spring Boot相關(guān)知識(shí)和架構(gòu)特點(diǎn),闡述其為什么是一個(gè)適于微服務(wù)系統(tǒng)開發(fā)的框架。最后介紹了如何利用微服務(wù)架構(gòu)開展城市一卡通手機(jī)充值支撐系統(tǒng)的設(shè)計(jì)和建設(shè),充分利用了Spring Boot框架的優(yōu)點(diǎn)。

      我們?cè)谖⒎?wù)架構(gòu)實(shí)踐上,還處于初步階段,未來(lái)在進(jìn)一步應(yīng)用方面還有廣闊的發(fā)展空間,我們將在后續(xù)的系統(tǒng)演變過(guò)程中進(jìn)一步深入優(yōu)化,以期構(gòu)建更加完善的城市一卡通手機(jī)充值服務(wù)系統(tǒng)。

      參考文獻(xiàn)

      [l]Lucas Krause.Microservices: Theory and Applicaton[J].Applicative.2016.

      [2]Craig Walis.Spring Boot in Action[M]:Manning publications.2016.endprint

      猜你喜歡
      體系架構(gòu)微服務(wù)
      云計(jì)算:體系架構(gòu)與關(guān)鍵技術(shù)
      基于SDN的OpenFlow管控標(biāo)準(zhǔn)接口協(xié)議研究
      基于供給側(cè)改革理論的圖書館社交網(wǎng)絡(luò)微服務(wù)研究
      微信公眾平臺(tái)在醫(yī)院圖書館的應(yīng)用現(xiàn)狀調(diào)查
      基于國(guó)產(chǎn)軟硬件的行業(yè)大數(shù)據(jù)體系架構(gòu)研究
      基于微信企業(yè)號(hào)的校園移動(dòng)服務(wù)
      微服務(wù)視角下高職圖書館數(shù)字資源使用分析
      中文信息(2016年10期)2016-12-12 10:09:57
      從單一模式系統(tǒng)架構(gòu)往微服務(wù)架構(gòu)遷移轉(zhuǎn)化技術(shù)研究
      基于微信公眾平臺(tái)的高校圖書館微服務(wù)現(xiàn)狀及對(duì)策
      關(guān)于應(yīng)急移動(dòng)通信體系架構(gòu)及組網(wǎng)技術(shù)分析
      泸州市| 阿尔山市| 新和县| 蓬莱市| 且末县| 临沂市| 仁寿县| 浦北县| 定陶县| 南京市| 宣恩县| 航空| 兴安县| 苍南县| 聊城市| 湄潭县| 自贡市| 洪湖市| 连州市| 芦山县| 仁怀市| 沙雅县| 长乐市| 延津县| 遂昌县| 青田县| 哈尔滨市| 孟连| 昆明市| 武夷山市| 祁阳县| 青神县| 靖边县| 丹江口市| 郎溪县| 信阳市| 元朗区| 河西区| 克什克腾旗| 大洼县| 东莞市|