基于SpringBoot微服務(wù)架構(gòu)的城市一卡通手機(jī)充值支撐系統(tǒng)研究
1.4 哪些應(yīng)用系統(tǒng)適用微服務(wù)架構(gòu)
本文引用地址:http://m.butianyuan.cn/article/201709/364878.htm1)記錄型系統(tǒng)(System of Record)適用微服務(wù)架構(gòu),例如可將大型應(yīng)用按相對(duì)獨(dú)立的業(yè)務(wù)功能分解成若干個(gè)微服務(wù)實(shí)現(xiàn)。
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)模式如管道及過濾模式。
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)單的庫依賴管理,基于Maven配置文件,即可實(shí)現(xiàn)相關(guān)依賴庫的配置;
2)自動(dòng)配置,框架自動(dòng)負(fù)責(zé)了大部分常規(guī)的配置,開發(fā)者無需手工配置;
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ù)庫訪問,僅需聲明一個(gè)接口及相關(guān)函數(shù)定義(無需編寫實(shí)現(xiàn)),即可在其他進(jìn)行調(diào)用。
2)使配置變簡(jiǎn)單。Spring有多種多樣的XML Config、Java Config或注解配置;而Boot僅需簡(jiǎn)單的properties或yml文件配置。
3)使部署變簡(jiǎn)單。Boot可以將程序打包成一個(gè)jar文件,一鍵啟動(dòng),無需預(yù)部署各種應(yīng)用服務(wù)器。同時(shí),它對(duì)運(yùn)行環(huán)境的基本要求降低了,僅需JDK即可。
4)使監(jiān)控變簡(jiǎn)單。通過Boot中的spring-boot-actuator庫即可實(shí)現(xiàn)對(duì)程序的監(jiān)控,可以通過http請(qǐng)求來查看其屬性配置、線程工作狀態(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還提供了形式多樣的庫(以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ù)之間的交互也是通過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í)踐上,還處于初步階段,未來在進(jìn)一步應(yīng)用方面還有廣闊的發(fā)展空間,我們將在后續(xù)的系統(tǒng)演變過程中進(jìn)一步深入優(yōu)化,以期構(gòu)建更加完善的城市一卡通手機(jī)充值服務(wù)系統(tǒng)。
參考文獻(xiàn):
[1]Lucas Krause.Microservices: Theory and Applicaton[J].Applicative,2016.
[2]Craig Walls.Spring Boot in Action[M]:Manning publications,2016.
本文來源于《電子產(chǎn)品世界》2017年第10期第59頁,歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論