史宏杰 朱永亮
摘 要:针对于目前国内充电桩服务平台的问题,本文对于充电桩共享服务平台进行完整的技术架构设计。从总体方案,存储系统设计,备份恢复设计三个方面,详细的阐述了如果构建高性能,高并发,稳定可靠的分布式平台。为破解构建一个基于O2O模式的公共充电服务体系,完成一套万台级、服务于O2O充电服务的线上信息管理系统和千台级智能网联公共充电桩构成的线下服务网络,提供可行的技术路径。
关键词:充电桩;服务平台;分布式系统
1 引言
随着我国电动汽车保有量的不断提升,对于充电桩的需求越来越大。但是目前国内现有充电服务企业规模较小、充电服务所需的资源分散、商业模式创新面临体制机制约束等原因,我国充电基础设施发展的进程还远滞后于消费者充电需求,这已成为制约新能源汽车产业发展的瓶颈。那么构建一套完善的充电桩服务平台,并为用户提供良好的服务成为当务之急。
本文介绍了一种充电桩共享服务平台的技术架构方案,为解决目前充电桩平台的问题,提供了可行的路径。
本项目受张江专项资金“基于互联网的电动汽车公共充电服务网络建设”支持,支持号:201505-JD-C105-061。
2 总体方案设计
2.1 设计原则
对于整个新能源后台系统,海量数据、高并发是本系统的特点,其运行稳定性和高可用性至关重要。因此,需要通过高可用性设计来尽量减少系统的计划内和计划外停机,并在系统出现故障时及时响应、快速恢复,以保障关键数据和业务系统的运行稳定性和可持续访问性。
系统在应用软件架构设计中从通信层、消息处理层、业务处理层等不同层面通过多种措施和策略的综合设计来提高应用系统的高可用性和稳定性。在数据接入部分的设计中,考虑设置负载均衡、应用软件分布部署、故障隔离等机制。
2.2 设计思路
采用成熟、稳定的云计算平台,云平台支持公有云、混合云、专有云等多种部署方式,提供多数据中心容灾及支持,提供多种安全防护技术,如防止Ddos攻击等,提供云主机和云服务的实时监控。
采用高效率、大容量的实时消息接入,支持高效率数据传输及多种通信协议,如TCP\HTTP\MQTT等协议,支持大容量数据传输,久经市场考验,具有线性扩展能力,可以根据业务发展按需扩展。
采用大容量、线性扩展的分布式数据存储,大容量数据支持,按需线性扩展,支持读、写分离,支持高效率的读取和写入。
采用实时数据处理及监控平台,提供零编码的数据分析及模型配置工具,提供实时业务数据计算及分析能力。
采用分布式服务框架,提高业务的处理能力及重用度,自动服务注册及服务发现,支持应用全生命周期管理,构建共享业务能力中心,提高对业务的并发及大容量处理能力。
2.3 架构思路
系统分为数据接入层、数据处理层、分布式数据库层、数据统计分析层、业务逻辑层、表现层、软件系统管理层和云平台层。
数据接入层,主要对接不同厂家的充电桩和运营商平台,基于阿里负载均衡SLB服务,实现网关的分布式部署,达到数据接入的动态可扩展及接入服务稳定运行。数据处理层,包括对于接收数据的解密、解析,并对于数据做容错防错的处理。基于阿里的消息队列,实现数据的分布式消费和处理。分布式数据库层,基于阿里的DRDS分布式数据库服务,采用表格存储数据库、RDS关系数据库和Redis内存数据库集群。数据统计分析层,实时或者定时的对于充电桩实时数据、档案数据或日志数据等做统计分析。业务逻辑层实现系统要求的主要业务功能,包括:充电桩档案管理、报警管理、报表管理、错误信息处理。表现层为浏览器端,包括基础信息展示、运维管理、报警处理、统计分析结果等其他功能界面。软件系统管理包括用户管理、权限管理、部门管理和安全管理。日志系统,包括系统运行日志、用户操作日志和充电桩数据日志的收集、存储、清洗和分析工作。云平台,包括云主机、云服务产品和云安全产品等。
2.4 架构特点
架构分为四个主要模块。包括:分布式接口集群,阿里消息队列,分布式业务应用集群和分布式数据库集群。
分布式接口集群包括,充电桩数据接口服务、管理平台接口服务、数据接口服务。
充电桩数据模块负责与充电桩进行数据对接,相关数据日志存入日志系统, 充电桩接口模块技术特点:单机(4C 8G)支持2万以上TPS,并发连接数10万以上;无状态,可以横向扩展,集群支持的处理能力及并发连接数无上限,可在线增加。
Web管理平台负责用户使用浏览器操作Web管理平台的功能;第三方系统数据接口服务负责和外部的系统进行数据的交换。均由负载均衡服务SLB和分布式Web接口容器组成。(图1)
Web应用模块提供4层(TCP协议)和7层(HTTP协议)的负载均衡服务。可以对后端ECS进行健康检查,自动屏蔽异常状态的ECS,待该ECS恢复正常后自动解除屏蔽。
提供会话保持功能,在Session的生命周期内,可以将同一客户端请求转发到同一台后端ECS上。
分布式消息队列集群,支持消息海量堆积,单Topic可堆积100亿条以上消息。单条消息默认直达支持256K,最大可到4M。公有云单Topic支持10万以上TPS,单机支持47万以上TPS。
分布式业务应用集群,包括档案管理服务、实时数据服务、运营服务、报警管理服务和统计分析服务。该应用集群作为系统的核心功能模块,负责处理从消息队列获取的数据,进行逻辑处理,同时对于数据库进行操作。
存储模块负责存储充电桩实时数据以及业务相关的关系数据。采用分布式数据服务。存储模块技术特点,读写分离、线性伸缩、应用透明;负载均衡、异构索引、小表广播、全局唯一ID等功能特性;采用Redis作為系统的高速缓存服务,分布式部署,提高可用性。
2.5 架构说明
架构充分利用云基础设施平台服务(IaaS)、分布式平台服务(PaaS)实现平台的可高用、易扩展优势,实现高并发的充电桩接入能力。采用消息队列或者对外接口的方式与大数据平台无缝对接。
扩展性分为,性能扩展和存储扩展。性能扩展,平台采用基于公有云的分布式服务框架,可以动态快速的根据业务量,进行服务的平行扩展。存储扩展,平台采用基于公有云的分布式数据库服务,可以根据数据存储的要求做到容量的动态扩展。
数据管理,与大数据平台对接可以采用直接消费消息队列的方式和采用第三方接口的方式。推荐采用第一种方式,处理更加高效,并且避免产生丢失数据的问题。采用表格存储数据库的特性,数据分为热数据和冷数据,达到数据的分层,并通过配置足够的数据库容量满足存储3个月数据的需求。实时、历史、报警、报表等数据,根据数据的类型存入相应的数据库中,并建立主键进行关联,方便导出。对外接口服务,可以根据需求调用这些数据,提供给第三方。
数据接口,采用更加标准的RESTFul接口提供数据的对接。分布式的接口服务,可以针对大量的接口调用,提供很好的服务性能。接口采用RSA加密的方式加密数据。
2.6 系统功能
系统功能包括:档案管理、实时监控、报警处理、远程控制、订单管理、报表管理和用户管理(图2)。
档案管理包括,采用关系数据库存储档案数据,并采用该外键关联相关表。在redis内存数据库中,保存相关数据的索引,降低关系库的使用频率,提交系统效率。定义数据源类型,以区分外部系统数据。保存数据的系统更新时间和版本。
实时监控包括,充电桩的最新一条实时数据,采用存redis中调用的方式,提高页面的响应速度。充电桩的历史数据从高速的数据库中调用,并考虑查询的周期,以控制数据量的大小。根据索引,进行多数据源数据的组合调用,获取页面需要展示的数据。
报警处理包括,实时报警信息存储于redis和关系库中。历史报警信息存储于表格存储中。報警结束完成后,从关系库中同步到表格存储中。
远程控制包括,控制指令通过阿里云消息队列发往充电桩,可以在充电桩网络出现问题时,保证下发指令的不丢失和补发。用户管理模块对于用分配远程控制权限。用户在远程控制时,需要输入密码进行再次保护。数据接口通过SSL通道加密,RSA数据加密的方式,提供第三方应用进行接口调用。管理控制流程:从控制指令下发到充电桩应答成功等环节,记录所有的消息以及处理逻辑日志。基于公有云强大的服务性能和应用系统微服务架构,做到控制指令的时效性满足系统要求。
订单管理包括,管理订单从预约开始到支付完成的所有状态。管理每一个用户的订单。订单进行统计。
报表管理包括,根据业务需求开发相应的统计分析模块或者大数据平台的spark算法。采用第三方主流的前端控件,美观并高效的展示统计分析结果。统计分析数据提供web端导出功能和对外的加密数据接口。实时数据统计分析,可以根据需求采用定时任务的方式。统计分析结果调用邮件服务器或者第三方短信接口,进行发送。
用户管理包括,关系数据库建立用户、角色、权限、资源、部门表,并进行外键关联。用户管理功能实现用户建立,所属部门、角色建立、权限分配等功能。前端通过session的时效来管理用户超时登录。用户账号加密存储于数据库中,账号密码可以重置和修改。
3 存储系统设计
根据存储系统的建设需求,在全新的云平台存储网络环境中,我们采用最新的分布式数据库服务来建设公共信息服务平台的存储平台。
基于分布式服务,采用关系型数据库RDS用于保存系统的静态数据和相关业务数据;采用表格存储用来存储海量的充电桩的实时数据(图3)。
采用Redis内存数据库作为系统的缓存,用于存储系统运行过程中公共且使用频率很高的数据。考虑到数据分析的效率,在数据库中增加了企业编号、桩型编号、桩编号和区域编号作为索引字段。为了避免单表的数据量过大,采用分库分表的方式来进行存储。并且每个月生成一张新表来保存实时数据。
3.1 方案设计优势
分库分表:在后端将数据表水平拆分到后端的每个数据库中,这些数据库被称为分库,对应的表称为分表。由每个分库负责每一份数据的读写操作,从而有效的分散了整体访问压力。多种贴合OLTP业务的拆分方案,让操作聚焦少量数据,提升操作效率,利用分布式特性,并行操作选项,超越单机关系型数据库的操作响应时间。
平滑扩容:不影响业务,静默完成数据库存储扩容。
读写分离:通过添加只读实例线性增加数据库读能力,帮你处理好事务、备机挂、强制走主实例或只读实例等各种细节。
冷热数据:利用云平台表格存储特性,将三个月以上的数据转为冷数据,并对数据进行压缩处理。统计分析数据可在更长时间内作为热数据保存。
4 备份恢复设计
作为服务平台,需要防范可能的灾难发生造成的数据丢失和系统问题。本系统采用云平台多可用区域云服务和数据库跨地域数据容灾的方式,提供数据的可靠性和安全性方面的保障。
多可用区域云服务和数据库跨地域数据容灾是指利用技术、管理手段以及相关资源确保既定的关键数据、关键数据处理系统和关键业务数据备份在与源数据不同的位置,并在灾难发生后可以恢复的过程。
4.1 多可用区实例
云平台为全世界多个地域提供云计算服务,每个地域(Region)都包含多个可用区(Zone)。同一个地域下的可用区都被设计为相互之间网络延迟很小(3 ms以内)以及故障隔离的单元。
云平台数据库服务单可用区主实例运行在同一个可用区下的两台物理服务器上,可用区内机柜、空调、电路、网络都有冗余。通过异步/半同步的数据复制方式和高效的HA切换机制,为用户提供了高于物理服务器极限的数据库可用性。
为了提供比单可用区实例更高的可用性,支持多可用区实例(也叫做同城双机房或者同城容灾实例)。多可用区实例将物理服务器部署在不同的可用区,当一个可用区(A)出现故障时流量可以在短时间内切换到另一个可用区(B)。整个切换过程对用户透明,应用代码无需变更。
4.2 跨域容灾实例
云平台数据库服务多可用区实例的容灾能力局限在同地域的不同可用区之间。为了提供更高的可用性,还支持跨地域的数据容灾。用户可以将地域A的实例A通过数据传输(Data Transmission)异步复制到地域B的实例B(实例B是一个完整独立的实例,拥有独立的连接地址、账号和权限)。
配置了跨域容灾实例后,当实例A所在地域发生短期不可恢复的重大故障时,用户在另外一个地域的实例B随时可以进行容灾切换。切换完成后,用户通过修改应用程序中的数据库连接配置,可以将应用请求转到实例B上,进而获得高于地域极限的数据库可用性。
4.3 備份恢复策略
平台存在许多关键应用系统,其中数据构成了应用系统最重要的信息资产,因此,必须建立相应的备份和灾难后快速恢复机制,以保障重要业务的连续性。
项目采用多可用区实例方式实现系统数据备份和恢复的方式来解决该问题。
可用区A和可用区B在同地域作为生产级的平台,当用户访问的时候随机访问到A或B。A和B会同步做数据复制,保证数据的一致性。
通过异步复制的方式将数据备份到B可用区的数据库中,由于网络通信延迟的问题,正常情况下备份数据库不对外进行数据服务,只是做为备份库使用。 当可用区A发生短期不可恢复的重大故障时,用户在可用区B的实例随时可以进行容灾切换。切换完成后,用户通过修改应用程序中的数据库连接配置,可以将应用请求转到可用区B实例上,进而获得数据库的可用性。
5 结语
本文对于充电桩共享服务平台进行完整的技术架构设计。从总体方案,存储系统设计,备份恢复设计三个方面,详细的阐述了如果构建高性能,高并发,稳定可靠的分布式平台。为破解构建一个基于O2O模式的公共充电服务体系,完成一套万台级、服务于O2O充电服务的线上信息管理系统和千台级智能网联公共充电桩构成的线下服务网络,提供可行的技术路径。
参考文献:
[1]魏国,商慧杰,朱春波,逯仁贵.电动汽车交流充电桩系统设计,现代电子技术,2012,(21).
[2]汪子夜.电动汽车充电桩调度管理系统研究与设计[D]. 电子科技大学, 2016.
[3]叶冠南.基于GPRS的智能充电桩数据管理系统的设计与实现[D].浙江工业大学, 2014.
[4]陈良亮,张浩.电动汽车能源供给设施建设与发展探讨[j].电力系统自动化,2011,35(14).