隋永鑫
(北京智芯微電子科技有限公司,北京 102202)
微服務架構在電動汽車智能充電服務與運營平臺系統中的應用
隋永鑫
(北京智芯微電子科技有限公司,北京102202)
隨著微服務技術的興起和發展,越來越多的應用系統采用了微服務架構來實現對外服務。描述了微服務框架在電動汽車智能充電服務與運營平臺中的應用,并介紹了一種適用于微服務的開發框架。該框架基于輕量級開源微服務框架組件SpringCloud,其提供一系列的微服務基礎設施進行支撐,對電動汽車充電服務運行平臺中各組成結構都提供快速簡單微服務組件,以提高系統開發效率,降低業務之間耦合度,實現系統的技術隔離、高性能并發處理、獨立分布式部署運行、灰度發布、服務降級等,大大提高了電動汽車充電服務運營平臺的高效性。
微服務;微服務開發框架;SpringBoot;SpringCloud;微服務基礎設施;電動汽車充電服務運營平臺
隨著移動互聯網和云計算等技術的不斷發展,業界出現了很多關于微服務的應用實踐,傳統的應用系統因采用“單體架構”已經凸顯出響應需求速度慢、交付周期長、不能適應多終端訪問等系列,微服務具有獨立部署、松散耦合、技術隔離、易于擴展等優點,可以改善“單體架構”帶來的上述問題。同時,微服務是一種分布式系統的解決方案,其具有顯著的優點,但也需要解決一系列的復雜性問題,采用微服務架構需要具備服務注冊、服務發現、負載均衡、微服務管理等微服務架構的基礎設施功能[1-3]的關鍵能力。
運用微服務架構相關技術對傳統的電力應用系統改造升級,尤其在電動汽車充電和運營系統[4-6]上應用微服務架構模式,在電力行業領域內具有先創性。本文將重點介紹一種適用于微服務架構模式的開發框架在電動汽車充電和運營系統中的應用,基于框架提供的基礎設施服務,開發人員可以集中精力進行微服務的開發而無需過多地關注微服務框架帶來的復雜性問題;應用方面,結合業務對系統功能進行服務化優化,為未來電動汽車的大規模推廣、充電基礎設施的大規模建設部署奠定基礎,文獻[7]中分析了微服務架構的發展與影響。
電動汽車充電服務與運營平臺由運營平臺、APP客戶端、智能充電樁三部分組成。
(1)運營平臺,是銜接服務APP與智能充電終端互動的橋梁,負責對智能充電終端進行指令下發與數據采集;響應服務APP的訪問請求;供運營管理者對充電業務信息進行維護、統計、分析,配置平臺運行參數,監測充電終端運行工況。
(2)服務APP,是電動汽車用戶參與充電服務互動的客戶端,主要實現用戶對智能充電樁進行檢索、定位、導航、預約、收藏、充電控制等一系列操作,并提供相關業務信息、活動資訊、應用配置參數的顯示與維護功能。
(3)智能充電樁,是供電動汽車充電的智能裝置,與傳統充電樁相比,差別在于增加了WiFi通信模塊,可借助互聯網通信與微控制單元(Micro Controller Unit,MCU),實現對充電裝置的遠程控制。
Spring Cloud是一系列框架的有序集合。它利用Spring Boot開發應用的便利性,巧妙地簡化了微服務架構模式的基礎設施組件的開發,如服務發現注冊、配置中心、負載均衡、斷路器、數據監控等微服務基礎設施,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現原理,提供了一套簡單易懂、易部署和易維護的分布式系統開發工具包。使用Spring Cloud一站式解決方案能在從容應對業務發展的同時大大減少開發成本,并可快速進行微服務架構模式應用的開發。
應用上述微服務基礎設施組件結合Spring Boot可快速開發、部署,實現微服務架構模式的應用,架構圖如圖1所示。

圖1 微服務技術架構示意圖
Spring Boot是一個可以輕量實現Java微服務的框架,其設計目的是用來簡化Spring應用的初始搭建及開發過程,通過它創建獨立運行的 Java 應用和Web應用,相對于傳統的Web應用,其內嵌Web應用服務器具有快速開發、一鍵啟動和部署的優勢,解決了傳統Web應用在部署和開發時由于與Web應用服務器之間的緊耦合而帶來的繁瑣配置和重量級運維等問題。
Spring Cloud框架集成Netflix框架中相關微服務基礎設施組件,提供了高可用的微服務基礎設施組件。
(1)Spring Cloud Config 是微服務框架中的公共配置組件,使用該組件可實現微服務集群的參數的統一配置,該組件可通過GIT、SVN和本地文件存儲,實現公共信息配置。
(2)Netflix Eureka 是微服務框架中的服務注冊中心組件,負責服務的發現、服務注冊、服務狀態同步,是微服務框架中各服務之間通信的中轉站。
(3)Netflix Zuul 該組件是公共網關入口組件,負責微服務集群中服務的路由,通過配置映射指定服務URL分發請求,也可與服務注冊中心結合通過服務的ID分發請求。
(4)Netflix Hystrix 是微服務框架中的服務斷路器,負責服務的調用熔斷控制、降級處理,通過配置熔斷和降級規則,實現服務調用故障的快速處理,保障服務調用快速響應,避免雪崩效應的產生,同時其提供了可視化的監控UI Hystrix Dashboard組件,提供微服務集群中服務熔斷和降級處理的實時效果展現。
(5) Netflix Ribbon 是微服務的軟負載均衡,提供隨機、輪訓、加權等負載均衡算法,結合服務注冊中心實現服務間調用的軟負載。
Spring Boot 與基礎設施組件結合的微服務技術架構組成如圖2所示。

圖2 Spring boot組件與Spring Cloud 組件結合的微服務技術架構圖
微服務架構模式在電動汽車充電服務與運營平臺系統中應用,相對于目前主流的充電服務運營平臺,旨在優化服務架構技術應用,實現充電業務模塊的服務化,將復雜應用拆分為獨立運行的單個服務,降低系統之間耦合,實現敏捷開發和快速部署,并實現配置的統一管理,降低運維成本,提升系統的整體擴展能力。
基于微服務架構模式強調分散和獨立可運行的松耦合設計思想,本平臺架構采用微服務應用群組與微服務基礎設施相結合的處理策略,以提高系統整體性能和穩定性,具體分為采集微服務群組、數據微服務群組、應用微服務群組、展現微服務群組。技術架構如圖3所示。

圖3 平臺技術架構示意圖
(1)采集微服務群組:由采集解析服務和負載分發服務組成的分布式微服務群組,采用NIO技術和多線程技術,負責與充電樁的通信,包括數據采集、指令收發、通信協議解析、數據校驗、數據加密/解密、協議適配、分布式部署、提供標準Restful接口服務等功能供其他微服務群組中服務調用。
(2)數據微服務群組:包含運營管理服務、數據儲存服務、數據分析服務。運營管理服務提供用戶、組織、權限、充電樁基礎信息、工況等信息的基礎數據,并以JSON格式提供給調用方。數據存儲服務通過MySQL數據庫服務持久化業務數據,同時通過Redis內存數據庫存儲上行報文的實時狀態,供應其微服務群組中微服務定時調用。數據分析服務提供對系統中充電數據、交易數據以及充電樁上報數據的智能分析功能,提供給展現服務所需要的基礎數據。
(3)應用微服務群組:由Web應用接口服務、APP接口服務、第三方接口服務、充電服務、交易服務等微服務組成,實現充電樁運行管理平臺中大部分業務功能與其他群組中微服務通過Resful協議實現數據交互。
(4)展現微服務群組:該群組中微服務分別提供對手機端APP和PC端瀏覽器訪問的兩種渠道數據支持,其中手機端APP分為iOS與Android系統兩個版本,用于向電動汽車用戶提供充電服務相關的互動操作;PC端瀏覽器作為運營商的管理工具,主要用于查看充電業務信息、配置平臺運行參數、監測充電終端運行工況等,該群組中服務僅提供展現頁面,數據由數據微服務群組中服務提供。
按照系統架構的微服務群組設計,將電動汽車充電和運營平臺行的各業務功能進行微服務化設計,由職責單一的微服務提供業務服務,劃分的幾個微服務群組集成Spring Cloud微服務框架的基礎設施服務,實現整個服務群組中服務的高可用性。
展現服務群組中微服務提供了手機APP和PC 瀏覽器的頁面展示,數據則由數據微服務群組中數據分析服務提供。
應用群組中服務提供了其他Web應用、第三方應用接口和APP接口的服務,可方便合作第三方的其他系統接入充電和運營系統,同時應用群組中提供充電服務、交易服務等充電操作相關業務的服務功能。
數據服務群組中由數據存儲服務通過MySQL數據庫服務持久化業務數據,通過Redis內存數據庫存儲上行報文的實時狀態,數據分析服務提供了展現服務所需的數據,運營管理服務提供基礎運營管理數據。
采集解析微服務與充電樁之間采用長連接的實時通信,分布式部署的采集解析服務可對高并發、多協議適配提供高效的支撐。負載分發服務負責充電樁與采集解析服務之間請求分發,采用輪訓、加權、最小連接數等算法實現負載均衡,保障海量充電樁與系統的正常連接。
各群組中微服務可同時大規模部署,通過API公共網關實現服務的統一入口,由服務注冊中心實現微服務的注冊、發現、狀態刷新、服務治理、各微服務之間的調用,并可通過微服務框架的軟負載策略實現負載均衡,提高服務的可用性,在服務調用過程中引入服務熔斷降級處理,規避由于大規模或高并發訪問造成服務鏈路響應延遲或異常而導致的雪崩效應。使用微服務模式架構的工作原理如圖4所示。

圖4 微服務模式架構工作原理圖
框架同時提供了公共統一配置服務,解決分布式部署海量應用時配置繁瑣問題。公共配置組件提供統一GIT庫同步、SVN同步配置和本地文件配置,保證在多種網絡環境下微服務的統一配置。
采用微服務架構模式的電動汽車充電服務運營平臺可為充電樁的大規模建設部署提供有效的推進力,是促進用戶有序充電、快捷充電、合理充電的關鍵。本文探討了微服務架構模式在面向互聯網海量智能充電樁的電動汽車充電服務運營平臺的應用,分析了技術架構、部署方式、功能應用的設計思路,為電動汽車用戶與海量充電樁形成的智能充電網進行快捷互動提供了可靠平臺。
[1] 王磊. 微服務架構與實踐[M]. 北京:電子工業出版社,2015.
[2] 蔣勇. 基于微服務架構的基礎設施設計[J]. 軟件,2016,37(5):93-97.
[3] 劉為. 微服務架構及相應云平臺解析[J]. 科教導刊, 2017(3): 27-28.
[4] 徐志丹,趙宏振,張宗慧. 基于云計算平臺的電動汽車充電樁設計與實現[J].電氣時代,2014(5): 68-71.
[5] 潘明宇,賀家勝,遲忠君,等. 電動汽車智能服務平臺的設計與實現[J]. 電力信息與通信技術,2014,12(1):78-81.
[6] 殷樹剛,龔桃榮,劉瑞,等. 基于云平臺的電動汽車智能充電系統設計與應用 [J]. 供用電,2015,32(7):43-47.
[7] 李貞昊.微服務架構的發展與影響分析[J].信息系統工程, 2017(1):154-155.
Application of micro service architecture in intelligent charging service andoperation platform system of electric vehicle
Sui Yongxin
(Beijing Smart-chip Microelectronics Technology Ltd.,Beijing 102200,China)
With the rise and development of micro service technology,more and more application systems adopt micro service architecture to realize the external service. This paper describes the application of the micro service framework in the platform of electric vehicle charging service,and introduces a framework for micro service development. This framework is based on lightweight micro service framework components Spring Cloud,which provides a series of micro service infrastructure to support the service platform to run the structure,and provides quick and simple micro service components of electric vehicle charging,in order to improve the efficiency of system development,reduce the degree of coupling between business and the implementation technology of isolation system,and realize high performance independent processing,distributed deployment operation,service degradation,and gray release,greatly improving the efficiency of the electric vehicle charging service operation platform.
micro service; micro service development framework; Spring Boot; Spring Cloud; micro service infrastructure; electric vehicle charging service operation platform
TP311.5
A
10.19358/j.issn.1674-7720.2017.24.029
隋永鑫.微服務架構在電動汽車智能充電服務與運營平臺系統中的應用J.微型機與應用,2017,36(24):102-104,108.
2017-06-26)
隋永鑫(1984-),男,學士,工程師,主要研究方向:用電節能、智能用電等。