隋永鑫
(北京智芯微电子科技有限公司,北京 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-),男,学士,工程师,主要研究方向:用电节能、智能用电等。