盧琛琛 曾宇凡 潘洪強



摘要:文章通過微服務架構體系設計將ETC支付及移動支付應用進行整合,重點設計了通用組件服務、支付服務、用戶中心服務、通行交易服務等微服務應用,通過容器平臺部署模式實現快速部署與擴展,減少微服務系統運維壓力,并通過性能測試驗證該高速公路收費電子融合支付系統可提供可靠、高效、靈活的高速公路收費服務支撐。
關鍵詞:ETC支付;移動支付;融合支付;微服務;容器
中圖分類號:U412.36+6A541823
0引言
高速公路不停車通行費電子支付系統(ETC)[1]是目前世界上先進的電子支付系統,是促進國家、區域經濟社會發展和交通一體化的需要,是解決高速公路收費站交通擁堵,促進節能減排,構建暢通、便捷、安全、高效、綠色的公路交通運輸服務體系的重要舉措。移動支付[2]是指客戶利用手機等電子設備來通過互聯網將終端設備、交易數據、金融賬戶有效地融合起來,形成一個復雜多元化的支付體系。根據國務院《深化收費公路制度改革取消高速公路省界收費站實施方案》與交通運輸部《關于大力推動高速公路ETC發展應用工作通知》要求,2020年全國已經依托ETC收費系統實現高速公路聯網收費,同時實現手機移動支付在混合收費車道的全覆蓋。為此高速公路收費系統正在探索ETC和移動支付融合[3],以適應更多客戶支付需求,提升高速公路收費管理水平。為實現高速公路ETC和移動支付融合,需要建立一套高速公路收費電子融合支付系統,以支撐不同支付場景下的業務需求。當前高速公路收費電子支付存在的最大問題是面對不同的支付場景和支付渠道業務背景下,支付體系的融合度不高,各種支付系統和高速公路通行交易系統的對接分散雜亂,沒有形成統一的高速公路收費電子支付架構體系;高速公路收費電子支付服務應用沒有能夠很好地滿足高速公路運營管理單位的業務需求;高速公路收費電子支付的部署和拓展性能不足,不能很好地滿足當前高速公路收費電子支付發展需求和高并發的業務需求。
因此,本文將從高速公路收費電子融合支付系統的架構設計、關鍵微服務模塊設計開發、容器平臺部署及性能調優等幾個方面搭建高速公路收費電子融合支付系統,實現高速公路收費電子支付統一的架構系統,滿足當前業務需求和未來發展需要,達到當前及未來一段時間內的高速公路收費電子支付的高并發性能要求。
1系統架構體系
高速公路收費電子融合支付系統通過將高速公路ETC支付及移動支付兩種業務場景,在用戶在高速公路清分交易系統產生交易業務時需要的記賬、請款、扣款等處理流程通過統一的電子融合支付系統進行整合。高速公路收費電子融合支付系統如圖1所示。
本文融合支付系統采用了微服務框架進行設計。微服務架構設計是把系統中的應用進行細化拆分,構建出不同的服務套件進行組合,由一組微型的服務程序組成單體應用,里面的每個微服務都是獨立運行在進程中,微服務與微服務之間采用輕量級的通信機制來進行溝通。每一個服務都是圍繞具體的業務進行構建,每個微服務都是獨立部署和獨立擴展,每個微服務還遵循低耦合原則對外提供接口,不同的微服務甚至可以使用不同的編成語言。用戶發起交易時經由高速公路清分交易系統發行支付扣款請求至高速公路收費電子融合支付系統中的API網關[4],進行認證鑒權、負載均衡分配、限流控制、熔斷控制等邏輯處理。本文設計的主要微服務架構、微前端、微后端分離等架構如圖2所示。系統主要包括支付業務接入網關、多個通用服務組件、統一權限管理、支付服務應用、用戶中心服務、通行交易服務、查詢服務、數據存儲、關系數據庫、文件服務器、緩存數據庫、日志存儲等。
通過本文中的高速公路收費電子融合支付系統架構設計的實現,微服務架構整合不同應用服務系統將高速公路收費電子支付服務應用場景中的銀行系統、互聯網合作方、微信、支付寶、銀聯、自有賬戶等多種支付場景和系統對接進行了統一管理及接入歸并,將不同渠道不同場景的支付應用進行了融合。
2關鍵微服務模塊設計開發
通用組件[5]是指在系統應用服務中比較穩定的高復用模塊,主要包括:(1)common-core,提供共用配置和工具類,包括web配置、json序列化配置、文本處理工具等;(2)common-uid,全局分布式ID生產器,基于snowflake算法,支持自定義時間戳、工作機器id和序列號等各部分的位數,以應用于不同場景;(3)common-api,提供公共遠程調用,包括獲取用戶基礎信息、授權信息、應用信息接口;(4)common-security,公共認證、授權服務;(5)common-log,通用日志攔截,遠程存儲;(6)common-jpa,通用JPA實體配置,統一命名規則,統一ID、創建人、創建時間、最后修改人、最后修改時間字段名稱。
支付服務作為高速公路收費電子融合支付系統的核心服務,需要實現多樣化的支付體系對接,支付渠道對接需實現可配置,支付訂單分類匯總,上游支付渠道交易訂單實現自動化對賬、結算等主要功能。還需要對接各種業務支撐系統,如賬戶體系、用戶體系支撐系統、通行交易系統等其他核心支撐系統。為確保通行交易數據和資金的正常流程,降低資金交易存在的風險,支付服務同時還需要提供統一的支付接口,為其他相關業務系統的支付業務進行調用。
賬戶體系、用戶體系支撐系統負責針對不同接入渠道的用戶數據進行管理,包括用戶個人隱私信息數據、用戶通行交易數據等,并能夠標記分類不同接入渠道,選取用戶ID作為主鍵唯一標識,用戶身份證號、聯系方式作為數據表中的關聯字段,統一實現用戶可用一套賬戶體系在多個系統端單點登錄。還能夠實現統一的查詢接口,支撐其他獲得授權的應用系統進行用戶數據查詢。
通行交易系統負責根據不同類型的交易業務,生成交易訂單數據,可以根據不同的用戶ID、不同的業務分類進行處理。以交易訂單ID作為主鍵,以時間戳信息字段作為關聯查詢字段,保證用戶交易訂單通過不同渠道進行支付,均可在全系統內部實現查詢及處理,還需要為管理后臺和前端服務提供訂單查詢接口,滿足前后臺的管理和服務需求。
對賬結算系統主要是實現支付渠道實收數據和業務系統交易訂單數據進行匯總校對,實現對賬結果自動反饋及異常提示,能夠對正常的對賬結果和異常的對賬結果進行分類處理,實現對賬報表自動生成,提高業務人員和財務管理人員的核對工作效率。
日志服務[6]將接收到的日志存儲到Kafka集群,由Logstash去消費Kafka隊列中的消息,解析之后存入ElasticSearch集群中,通過Kafka消息隊列的方式緩解系統高并發的數據存儲壓力,使用ElasticSearch集群存儲、搜索和分析大量日志數據。日志服務實現如圖4所示。
高速公路收費電子融合支付系統將支付服務、賬戶體系、用戶體系支撐系統、通行交易系統、對賬結算系統、日志服務等業務服務應用進行重新梳理,根據高速公路運營管理單位的業務需求進行重新優化,實現了更加優化高效的高速公路收費電子支付應用服務功能。
3容器平臺部署
本文設計的高速公路收費電子融合支付系統采用微服務容器平臺部署模式。容器部署具有極大的方便性,能夠實現快速部署與擴展,減少微服務系統運維壓力。本文設計的系統采用的容器平臺基于Kubernetes[7]構建,根據Kubernetes系統架構主節點至少部署兩臺服務器。主節點:管理節點,主要實現容器集群中的資源調度,節點狀態監測、更新、回滾以及自動擴展等。工作節點:容器運行的主機,主要實現鏡像管理和pod以及容器的正在運行,還需要負責容器內的負載均衡資源支撐。存儲:關系數據庫基于原有數據庫,采用集中存儲。日志、圖片、文檔等文件存入分布式數據庫。
通過將高速公路收費電子融合支付系統采用微服務容器平臺部署模式,滿足了高速公路收費電子支付系統的快速部署和靈活調度的需求。
4系統測試與結果分析
系統測試是驗證系統設計功能是否滿足需求,系統技術性能是否達到指標要求,本文主要是針對多渠道多場景高速公路收費融合支付功能前提下的性能測試。性能測試的重點是以Nginx和Spring Cloud網關的性能測試進行分析。Nginx是一個輕量級高性能、高并發、高可用的代理服務器,可作為網關服務器承載整個支付系統的訪問流量,因此Nginx的性能配置和優化至關重要。
本文采用模擬廣西高速公路收費交易并發量,請求交易數據通過HTTP協議POST方式發送支付請求,按照廣西高速公路收費交易100萬筆測算,平均每秒并發交易數據超過12筆,高峰期每秒并發交易數據超過50筆。為充分驗證系統性能本文測試中采用Apache JMeter[8]測試工作進行性能壓力測試,模擬請求每秒100、1 000、2 000并發壓力測試。壓力測試結果如表1所示。
性能測試結果證明,本文設計實現的高速公路收費融合支付系統能夠充分滿足廣西全區高速公路收費交易的并發量。
5結語
當前我國高速公路通行費交易支付已經開始進入電子化時代,依托ETC收費系統實現全國高速公路一張網運行的格局已經基本成型,以移動支付為補充支付手段的MTC收費也已經成為高速公路收費電子支付的重要組成部分。本文設計實現的可靠、高效、靈活、集成的高速公路收費電子融合支付系統統一了多場景多渠道下的高速公路收費電子支付應用架構,能夠充分適應當前高速公路收費電子化發展的要求,達到了高速公路運營管理單位的業務要求,拓展了高速公路收費的服務場景,顯著提升了高速公路收費系統資金支付的集成化水平和工作效率。
參考文獻
[1]交通部公路科學研究院,北京交科公路勘察設計研究院.全國高速公路電子不停車收費聯網總體技術方案[M].北京:人民交通出版社,2015.
[2]中國支付清算協會.中國支付清算行業運行報告(2017)[M].北京:中國金融出版社,2017.
[3]蔡亞楠.基于微服務的軟件體系結構設計方法研究與應用[D].北京:北京郵電大學,2019.
[4]劉金秀,陳怡華,谷長樂.基于Nginx的高可用Web系統的架構研究與設計[J].現代信息科技,2019,3(11):94-97.
[5]馬雄.基于微服務架構的系統設計與開發[D].南京:南京郵電大學,2017.
[6]巫輝強.基于ELK與kafka的分布式工業日志系統的設計與實現[D].廣州:華南理工大學,2019.
[7]嚴麗云,何震葦,楊新章,等.基于Kubernetes的容器化數據庫及其集群方案[J].電信科學,2018,34(12):163-171.
[8]佘青.利用Apache Jmeter進行Web性能測試的研究[J].智能計算機與應用,2012,2(2):55-57.
作者簡介:盧琛琛(1980—),在職研究生,高級工程師,主要從事高速公路智能收費系統、智慧交通信息化建設、ETC應用與拓展等領域的研究、設計和管理工作。