邊濤 呂哲楠 張成喆 趙錕 張程 張弛 王玉楠




摘要:隨著信息化時代的發展,業務系統越發龐大復雜,系統開發及維護面臨著巨大的挑戰。針對這一問題,基于微服務架構的統一應用應運而生。微服務架構有很多優點,但是也會帶來很多復雜性問題,需要額外的代價來解決。從應用架構、支撐框架方面總結了一套關于微服務的具體實現,并對如何通過架構分解實現新型架構進行了說明,最后通過對跨境電商的企業服務平臺的微服務架構進行實現,達到了預期效果。
關鍵詞:微應用;微服務;跨境電商
中圖分類號:TP311 ? ? ?文獻標識碼:A
文章編號:1009-3044(2021)35-0142-03
Design and Implementation of Cross-border E-commerce Enterprise Public Service System Based on Micro-service Architecture
BIAN Tao1, LV Zhe-nan1, ZHANG Cheng-zhe1, ZHAO Kun1, ZHANG Cheng1, ZHANG Chi1, WANG Yu-nan2
(1.China electronic port data center Tianjin Branch, Tianjin 300012, China; 2. Tianjin Electronic Time Tech Center, Tianjin 300012, China)
Abstract: With the development of information age, business systems are becoming more and more complex, and the development and maintenance of the systems are facing great challenges. In order to solve this problem, the application based on micro-service architecture has emerged. Microservice architecture has many advantages, but it also brings many complexity problems, which need to be solved at extra cost. This paper summarizes a specific implementation of micro-service from the aspects of application architecture and supporting framework, and explains how to realize the new architecture through architecture decomposition. Finally, it achieves the expected effect by implementing the micro-service architecture of the enterprise service platform of cross-border e-commerce.
Key words: micro-application; micro-service; cross-border e-commerce platform
微服務這一概念是由美國作者Martin Fowler于2014年最早提出,微服務架構(Micro Service Architecture)是指一種由多服務協同組成的應用模式,所有服務都獨立部署在不同進程內,各個服務都有自己清晰的界限,服務之間通過如HTTP、REST協議進行通信[1],可以靈活使用多種不同編程技術和數據存儲技術構建多項服務。
微服務架構具有健壯、容錯性好、耦合度低、獨立部署與靈活擴展等優點,但是微服務架構也會帶來諸多復雜性問題。首先就是微服務架構的設計,按照具體的業務邏輯和應用場景來組建微服務架構的應用組成部分,以及各組成部分之間要建立相互通信機制。其次就是要考慮采用新的技術和框架來支撐和保障新的服務架構,實施靈活的部署方式和自動路由規劃。最后業務應用被拆分為若干個服務后,也需要一個對業務和服務進行整體性能監控的工具,保障架構的穩定性和高可用性。本文在對跨境電商的企業服務平臺的具體實現中,從應用架構、關鍵技術以及業務領域方面對平臺的微服務架構如何實現進行了說明和實踐,以便有需要使用微服務架構的技術人員參考。
1 單體應用
在以前的系統開發中,大多采用所謂單體應用,就是我們傳統意義的、單個應用程序的應用。傳統意義的單體應用一般由若干個功能模塊組成,每個功能模塊基本都分為用戶訪問界面(UI)、業務邏輯和數據交互三個部分,所有的功能模塊作為一個獨立的單元安裝在中間件上運行[1],所有應用都對同一個數據庫進行訪問。單體應用的結構見圖 1。單體應用一開始技術難度小、成本低,可以快速支撐發展,隨著應用規模不斷擴大,帶來的成本也日益提高,相應的單體應用也越來越復雜,出現占用資源多、不易擴展等一系列問題。為了解決這些問題,微服務架構應運而生,它兼具靈活、快捷、耦合度低、獨立部署、容易擴展等優點,正成為更多程序開發者的選擇,其應用范圍越來越廣泛,是解決復雜業務環境的有力工具。
2 微服務架構介紹
微服務描述了一種將軟件應用程序設計為可獨立部署的服務套件的特殊方法,微服務架構實質上是一種屬于分布式的系統解決方案,需要包括服務注冊與發現、服務間通信、服務部署、負載均衡、API 網關、服務容錯機制和性能監控等技術來實現。如圖 2 所示。
微服務架構有很多重要的優點。首先,它將單體應用按照業務邊界拆分為多個獨立的服務,解決了業務復雜性問題,實現了業務解耦。每個服務邊界清晰,同時單個服務的代碼量更少、更加易維護。其次實現了技術異構,可以針對不同的業務采用不同的技術框架,有針對性地解決性能瓶頸。再者,可以實現獨立維護,獨立部署,獨立擴展,有效提高系統開發、運維效率。最后可以達到有效隔離故障的目的,當部分服務出現故障之后,可以將故障有效隔離,而不影響其他服務的穩定性,以此來保障系統整體穩定性[2]。
3 微服務架構關鍵技術
3.1 服務發現與注冊
微服務框架中的服務是一種動態,可隨時復制、銷毀、重定位的模式,所以有必要提供一種注冊和發現的動態機制來實現微服務架構理念。服務注冊中心負責管理服務的訪問地址及路由信息等,同時實現服務注冊、發布、狀態檢查和排除故障等功能。目前較為典型的注冊中心有Zookeeper、Netflix Eureka、Consul。
3.2 負載均衡
微服務架構中的服務數量在具體運行中是動態變化的,與之對應的系統服務實例數量也隨之增減,為了不斷滿足系統新的性能需求,開發者們設計了多種負載均衡算法,將服務請求按需分配至多個服務實例進行快速響應。例如以循環隊列方式輪流響應服務的輪詢法,按照不同服務請求進行隨機分配的隨機算法,以及按照鍵-值(key-value)進行計算而分派的哈希算法等,較典型的負載均衡器有Nginx、LVS、HAProxy等[3]。
3.3 服務網關
服務網關是外部服務請求的統一入口,負責提供身份認證管理、路由管理、服務組合、流量控制、負載均衡等功能。當有用戶提出請求服務時,服務網關先對請求進行身份權限驗證、API監控以及流量控制等系列操作,然后對用戶請求進行分派、具體轉發和調用等操作,也可提供服務發現和負載均衡等功能。Netflix Zuul是目前使用較典型的服務網關組件[4]。
3.4 服務通信
微服務架構里由于因業務拆分出多個服務,因此如何保障多個服務之間的準確高效通信顯得尤為重要,目前有三種部署方式:一是多個服務部署在單個物理機或虛擬機中,這種方式有效利用資源,但可能互相影響;二是單個服務部署在單獨虛機中,獨立性好但浪費資源;三是單個服務運行在單獨容器Docker中,既部署靈活也不相互影響。
服務間的通信基本都是通過網絡傳輸來實現的,具體模式可以分為同步和異步兩種,同步通信就是申請端發出通信請求并等待響應,采用REST協議較多,實現簡單,通用性好;異步通信是指發出請求后不需要等待響應,一般采用消息隊列方式實現,更適合應用場景較復雜的情況,但也增加了系統實現的復雜度。
4 應用案例
隨著網絡技術的發展,電子商務應運而生,跨境電子商務的出現與發展,顛覆了傳統的貿易方式。目前跨境電子商務模式已經逐步建立,但是企業申報效率不高,企業通關流程比較繁瑣,使得電商企業的成本增加,嚴重制約了跨境電子商務的發展。
本文設計的跨境電商企業公共服務平臺的主要功能是跨境電商相關企業通過互聯網訪問該平臺,完成跨境數據傳輸通道申請、跨境業務各種單據的協同匯總判定、跨境數據驗證,以及調取以往跨境商品備案的相同或相近商品等操作,然后需要申報的單據申報至跨境電子商務公共服務平臺,進行相關審批后反饋給企業。平臺業務流程如圖3所示。
在對平臺進行架構設計的時候,基于微服務的思想對平臺進行了架構分解。基于微服務的跨境電商企業公共服務平臺架構按照其本身具有的業務、功能、技術和公共四個維度進行架構分解。業務維度分解將業務邏輯應用分解為跨境數據傳輸通道申請、跨境業務單據協同、跨境數據驗證服務、跨境商品共享中心等四個領域。功能維度分解將業務功能分解為若干個子模塊,包括注冊模塊、事前備案、訂單管理、運單管理、清單管理、退貨管理、業務數據查詢、統計分析、幫助中心等。技術維度分解將各個主要子模塊拆分為前端具體用戶應用、后臺多個微服務以及若干子數據庫。平臺公共維度分解為用戶管理、系統管理、參數管理、日志管理、數據交換等。
平臺采用當前較為成熟的Spring ?Boot作為微服務實現框架[5],Spring Cloud Config為配置中心,使用Spring Cloud Gateway作為接口網關,內部的微服務之間通過Rest形式的 API接口通訊,基于Redis的數據緩存結構,采用Nagios和 ELK作為性能監控與日志工具。平臺的微服務結構圖如圖4所示。
通過對跨境電商企業公共服務平臺的微服務架構的設計和實現,按照上述四個維度的架構分解,將復雜的業務應用和大數據量的訪問拆分成若干個微服務和子數據庫,并運用了成熟的微服務關鍵技術組件,滿足了高可用、低耦合、易擴展的目的,同時應用了API組合復用實現不同電商企業的自定義接口,有利于跨境電商的業務拓展。
5 結束語
本文對單體架構和微服務架構的應用模式和特點進行了介紹,并對微服務所需的關鍵技術進行了說明,結合在跨境電商企業服務平臺的設計中得到了具體體現和實踐,對平臺進行了多維度的分解,通過微服務開發框架,開發人員能夠快速構建多個微服務接口,并快捷部署到生產環境,取得了較好的效果。
參考文獻:
[1] 劉丹,朱洪斌,王宇飛,等.一種微服務架構最佳實踐[C]//2017電力行業信息化年會論文集.南寧,2017:368-372.
[2] 徐天橋.微服務對傳統應用的改造及設計[J].電子制作,2020(8):38-39,63.
[3] 辛園園,鈕俊,謝志軍,等.微服務體系結構實現框架綜述[J].計算機工程與應用,2018,54(19):10-17.
[4] 劉增才,張福錚,劉明珠,等.基于高可用微服務架構的數字黨建平臺研究及應用[J].信息技術與信息化,2019(11):184-188.
[5] 翟永超.Spring Cloud 微服務實戰[M].北京:電子工業出版社,2017.
【通聯編輯:謝媛媛】