隋永鑫
(北京智芯微電子科技有限公司,北京 102202)
微服務架構在電動汽車智能充電服務與運營平臺系統(tǒng)中的應用
隋永鑫
(北京智芯微電子科技有限公司,北京102202)
隨著微服務技術的興起和發(fā)展,越來越多的應用系統(tǒng)采用了微服務架構來實現(xiàn)對外服務。描述了微服務框架在電動汽車智能充電服務與運營平臺中的應用,并介紹了一種適用于微服務的開發(fā)框架。該框架基于輕量級開源微服務框架組件SpringCloud,其提供一系列的微服務基礎設施進行支撐,對電動汽車充電服務運行平臺中各組成結構都提供快速簡單微服務組件,以提高系統(tǒng)開發(fā)效率,降低業(yè)務之間耦合度,實現(xiàn)系統(tǒng)的技術隔離、高性能并發(fā)處理、獨立分布式部署運行、灰度發(fā)布、服務降級等,大大提高了電動汽車充電服務運營平臺的高效性。
微服務;微服務開發(fā)框架;SpringBoot;SpringCloud;微服務基礎設施;電動汽車充電服務運營平臺
隨著移動互聯(lián)網(wǎng)和云計算等技術的不斷發(fā)展,業(yè)界出現(xiàn)了很多關于微服務的應用實踐,傳統(tǒng)的應用系統(tǒng)因采用“單體架構”已經(jīng)凸顯出響應需求速度慢、交付周期長、不能適應多終端訪問等系列,微服務具有獨立部署、松散耦合、技術隔離、易于擴展等優(yōu)點,可以改善“單體架構”帶來的上述問題。同時,微服務是一種分布式系統(tǒng)的解決方案,其具有顯著的優(yōu)點,但也需要解決一系列的復雜性問題,采用微服務架構需要具備服務注冊、服務發(fā)現(xiàn)、負載均衡、微服務管理等微服務架構的基礎設施功能[1-3]的關鍵能力。
運用微服務架構相關技術對傳統(tǒng)的電力應用系統(tǒng)改造升級,尤其在電動汽車充電和運營系統(tǒng)[4-6]上應用微服務架構模式,在電力行業(yè)領域內(nèi)具有先創(chuàng)性。本文將重點介紹一種適用于微服務架構模式的開發(fā)框架在電動汽車充電和運營系統(tǒng)中的應用,基于框架提供的基礎設施服務,開發(fā)人員可以集中精力進行微服務的開發(fā)而無需過多地關注微服務框架帶來的復雜性問題;應用方面,結合業(yè)務對系統(tǒng)功能進行服務化優(yōu)化,為未來電動汽車的大規(guī)模推廣、充電基礎設施的大規(guī)模建設部署奠定基礎,文獻[7]中分析了微服務架構的發(fā)展與影響。
電動汽車充電服務與運營平臺由運營平臺、APP客戶端、智能充電樁三部分組成。
(1)運營平臺,是銜接服務APP與智能充電終端互動的橋梁,負責對智能充電終端進行指令下發(fā)與數(shù)據(jù)采集;響應服務APP的訪問請求;供運營管理者對充電業(yè)務信息進行維護、統(tǒng)計、分析,配置平臺運行參數(shù),監(jiān)測充電終端運行工況。
(2)服務APP,是電動汽車用戶參與充電服務互動的客戶端,主要實現(xiàn)用戶對智能充電樁進行檢索、定位、導航、預約、收藏、充電控制等一系列操作,并提供相關業(yè)務信息、活動資訊、應用配置參數(shù)的顯示與維護功能。
(3)智能充電樁,是供電動汽車充電的智能裝置,與傳統(tǒng)充電樁相比,差別在于增加了WiFi通信模塊,可借助互聯(lián)網(wǎng)通信與微控制單元(Micro Controller Unit,MCU),實現(xiàn)對充電裝置的遠程控制。
Spring Cloud是一系列框架的有序集合。它利用Spring Boot開發(fā)應用的便利性,巧妙地簡化了微服務架構模式的基礎設施組件的開發(fā),如服務發(fā)現(xiàn)注冊、配置中心、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等微服務基礎設施,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現(xiàn)原理,提供了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。使用Spring Cloud一站式解決方案能在從容應對業(yè)務發(fā)展的同時大大減少開發(fā)成本,并可快速進行微服務架構模式應用的開發(fā)。
應用上述微服務基礎設施組件結合Spring Boot可快速開發(fā)、部署,實現(xiàn)微服務架構模式的應用,架構圖如圖1所示。
圖1 微服務技術架構示意圖
Spring Boot是一個可以輕量實現(xiàn)Java微服務的框架,其設計目的是用來簡化Spring應用的初始搭建及開發(fā)過程,通過它創(chuàng)建獨立運行的 Java 應用和Web應用,相對于傳統(tǒng)的Web應用,其內(nèi)嵌Web應用服務器具有快速開發(fā)、一鍵啟動和部署的優(yōu)勢,解決了傳統(tǒng)Web應用在部署和開發(fā)時由于與Web應用服務器之間的緊耦合而帶來的繁瑣配置和重量級運維等問題。
Spring Cloud框架集成Netflix框架中相關微服務基礎設施組件,提供了高可用的微服務基礎設施組件。
(1)Spring Cloud Config 是微服務框架中的公共配置組件,使用該組件可實現(xiàn)微服務集群的參數(shù)的統(tǒng)一配置,該組件可通過GIT、SVN和本地文件存儲,實現(xiàn)公共信息配置。
(2)Netflix Eureka 是微服務框架中的服務注冊中心組件,負責服務的發(fā)現(xiàn)、服務注冊、服務狀態(tài)同步,是微服務框架中各服務之間通信的中轉(zhuǎn)站。
(3)Netflix Zuul 該組件是公共網(wǎng)關入口組件,負責微服務集群中服務的路由,通過配置映射指定服務URL分發(fā)請求,也可與服務注冊中心結合通過服務的ID分發(fā)請求。
(4)Netflix Hystrix 是微服務框架中的服務斷路器,負責服務的調(diào)用熔斷控制、降級處理,通過配置熔斷和降級規(guī)則,實現(xiàn)服務調(diào)用故障的快速處理,保障服務調(diào)用快速響應,避免雪崩效應的產(chǎn)生,同時其提供了可視化的監(jiān)控UI Hystrix Dashboard組件,提供微服務集群中服務熔斷和降級處理的實時效果展現(xiàn)。
(5) Netflix Ribbon 是微服務的軟負載均衡,提供隨機、輪訓、加權等負載均衡算法,結合服務注冊中心實現(xiàn)服務間調(diào)用的軟負載。
Spring Boot 與基礎設施組件結合的微服務技術架構組成如圖2所示。
圖2 Spring boot組件與Spring Cloud 組件結合的微服務技術架構圖
微服務架構模式在電動汽車充電服務與運營平臺系統(tǒng)中應用,相對于目前主流的充電服務運營平臺,旨在優(yōu)化服務架構技術應用,實現(xiàn)充電業(yè)務模塊的服務化,將復雜應用拆分為獨立運行的單個服務,降低系統(tǒng)之間耦合,實現(xiàn)敏捷開發(fā)和快速部署,并實現(xiàn)配置的統(tǒng)一管理,降低運維成本,提升系統(tǒng)的整體擴展能力。
基于微服務架構模式強調(diào)分散和獨立可運行的松耦合設計思想,本平臺架構采用微服務應用群組與微服務基礎設施相結合的處理策略,以提高系統(tǒng)整體性能和穩(wěn)定性,具體分為采集微服務群組、數(shù)據(jù)微服務群組、應用微服務群組、展現(xiàn)微服務群組。技術架構如圖3所示。
圖3 平臺技術架構示意圖
(1)采集微服務群組:由采集解析服務和負載分發(fā)服務組成的分布式微服務群組,采用NIO技術和多線程技術,負責與充電樁的通信,包括數(shù)據(jù)采集、指令收發(fā)、通信協(xié)議解析、數(shù)據(jù)校驗、數(shù)據(jù)加密/解密、協(xié)議適配、分布式部署、提供標準Restful接口服務等功能供其他微服務群組中服務調(diào)用。
(2)數(shù)據(jù)微服務群組:包含運營管理服務、數(shù)據(jù)儲存服務、數(shù)據(jù)分析服務。運營管理服務提供用戶、組織、權限、充電樁基礎信息、工況等信息的基礎數(shù)據(jù),并以JSON格式提供給調(diào)用方。數(shù)據(jù)存儲服務通過MySQL數(shù)據(jù)庫服務持久化業(yè)務數(shù)據(jù),同時通過Redis內(nèi)存數(shù)據(jù)庫存儲上行報文的實時狀態(tài),供應其微服務群組中微服務定時調(diào)用。數(shù)據(jù)分析服務提供對系統(tǒng)中充電數(shù)據(jù)、交易數(shù)據(jù)以及充電樁上報數(shù)據(jù)的智能分析功能,提供給展現(xiàn)服務所需要的基礎數(shù)據(jù)。
(3)應用微服務群組:由Web應用接口服務、APP接口服務、第三方接口服務、充電服務、交易服務等微服務組成,實現(xiàn)充電樁運行管理平臺中大部分業(yè)務功能與其他群組中微服務通過Resful協(xié)議實現(xiàn)數(shù)據(jù)交互。
(4)展現(xiàn)微服務群組:該群組中微服務分別提供對手機端APP和PC端瀏覽器訪問的兩種渠道數(shù)據(jù)支持,其中手機端APP分為iOS與Android系統(tǒng)兩個版本,用于向電動汽車用戶提供充電服務相關的互動操作;PC端瀏覽器作為運營商的管理工具,主要用于查看充電業(yè)務信息、配置平臺運行參數(shù)、監(jiān)測充電終端運行工況等,該群組中服務僅提供展現(xiàn)頁面,數(shù)據(jù)由數(shù)據(jù)微服務群組中服務提供。
按照系統(tǒng)架構的微服務群組設計,將電動汽車充電和運營平臺行的各業(yè)務功能進行微服務化設計,由職責單一的微服務提供業(yè)務服務,劃分的幾個微服務群組集成Spring Cloud微服務框架的基礎設施服務,實現(xiàn)整個服務群組中服務的高可用性。
展現(xiàn)服務群組中微服務提供了手機APP和PC 瀏覽器的頁面展示,數(shù)據(jù)則由數(shù)據(jù)微服務群組中數(shù)據(jù)分析服務提供。
應用群組中服務提供了其他Web應用、第三方應用接口和APP接口的服務,可方便合作第三方的其他系統(tǒng)接入充電和運營系統(tǒng),同時應用群組中提供充電服務、交易服務等充電操作相關業(yè)務的服務功能。
數(shù)據(jù)服務群組中由數(shù)據(jù)存儲服務通過MySQL數(shù)據(jù)庫服務持久化業(yè)務數(shù)據(jù),通過Redis內(nèi)存數(shù)據(jù)庫存儲上行報文的實時狀態(tài),數(shù)據(jù)分析服務提供了展現(xiàn)服務所需的數(shù)據(jù),運營管理服務提供基礎運營管理數(shù)據(jù)。
采集解析微服務與充電樁之間采用長連接的實時通信,分布式部署的采集解析服務可對高并發(fā)、多協(xié)議適配提供高效的支撐。負載分發(fā)服務負責充電樁與采集解析服務之間請求分發(fā),采用輪訓、加權、最小連接數(shù)等算法實現(xiàn)負載均衡,保障海量充電樁與系統(tǒng)的正常連接。
各群組中微服務可同時大規(guī)模部署,通過API公共網(wǎng)關實現(xiàn)服務的統(tǒng)一入口,由服務注冊中心實現(xiàn)微服務的注冊、發(fā)現(xiàn)、狀態(tài)刷新、服務治理、各微服務之間的調(diào)用,并可通過微服務框架的軟負載策略實現(xiàn)負載均衡,提高服務的可用性,在服務調(diào)用過程中引入服務熔斷降級處理,規(guī)避由于大規(guī)?;蚋卟l(fā)訪問造成服務鏈路響應延遲或異常而導致的雪崩效應。使用微服務模式架構的工作原理如圖4所示。
圖4 微服務模式架構工作原理圖
框架同時提供了公共統(tǒng)一配置服務,解決分布式部署海量應用時配置繁瑣問題。公共配置組件提供統(tǒng)一GIT庫同步、SVN同步配置和本地文件配置,保證在多種網(wǎng)絡環(huán)境下微服務的統(tǒng)一配置。
采用微服務架構模式的電動汽車充電服務運營平臺可為充電樁的大規(guī)模建設部署提供有效的推進力,是促進用戶有序充電、快捷充電、合理充電的關鍵。本文探討了微服務架構模式在面向互聯(lián)網(wǎng)海量智能充電樁的電動汽車充電服務運營平臺的應用,分析了技術架構、部署方式、功能應用的設計思路,為電動汽車用戶與海量充電樁形成的智能充電網(wǎng)進行快捷互動提供了可靠平臺。
[1] 王磊. 微服務架構與實踐[M]. 北京:電子工業(yè)出版社,2015.
[2] 蔣勇. 基于微服務架構的基礎設施設計[J]. 軟件,2016,37(5):93-97.
[3] 劉為. 微服務架構及相應云平臺解析[J]. 科教導刊, 2017(3): 27-28.
[4] 徐志丹,趙宏振,張宗慧. 基于云計算平臺的電動汽車充電樁設計與實現(xiàn)[J].電氣時代,2014(5): 68-71.
[5] 潘明宇,賀家勝,遲忠君,等. 電動汽車智能服務平臺的設計與實現(xiàn)[J]. 電力信息與通信技術,2014,12(1):78-81.
[6] 殷樹剛,龔桃榮,劉瑞,等. 基于云平臺的電動汽車智能充電系統(tǒng)設計與應用 [J]. 供用電,2015,32(7):43-47.
[7] 李貞昊.微服務架構的發(fā)展與影響分析[J].信息系統(tǒng)工程, 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
隋永鑫.微服務架構在電動汽車智能充電服務與運營平臺系統(tǒng)中的應用J.微型機與應用,2017,36(24):102-104,108.
2017-06-26)
隋永鑫(1984-),男,學士,工程師,主要研究方向:用電節(jié)能、智能用電等。