C/S模式充电桩管理软件向微服务架构演进

微服务架构在最近两年炒比较火热,最近有个朋友在做充电桩管理软件,该软件是两年前采用C/S模式开发的 ,主要Client(UI)和 Server端两个层次,中间采用数据库共享方式进行通信,如下图所示为充电桩管理软件的客户端界面:

这类应用是传统的C/S模式,适合于30个场站以下的管理和应用,在当前充电桩整体规模不大的情况下,还是勉强可以支撑试用的,最近我这位朋友遇到一个新需求,要接入到第三方的管理平台(B/S模式)中,要求提供标准的REST接口。由于传统的应用开发者(尤其是以嵌入式为主的开发工程师),对REST 等类型的互联网接口存在一定的陌生,在向我咨询后,我们仔细分析了该项目的需求,我给他推荐了向微服务框架演进的方法,最后他们顺利的接入到第三方的管理平台中,或者集成资质。本文将主要阐述我们将传统的充电桩管理软件向微服务框架演进的经验,以下分几个层面进行拆分和演进:

1\业务闭环、颗粒度细分、RPC交互
原来的充电桩管理软件主要划分为两个模块(UI和后台服务器),UI主要用于客户信息维护、充值、充电桩状态监视等功能,后台服务器主要负责充电桩接入、鉴权、执行任务、数据采集等功能。通过对这两个模块进行分析,我们将 UI和后台服务器都进行了拆分。
UI拆分成三个模块(本地大屏监控、本地运营客户端 、中心监控客户端,通过权限进行区分),本地大屏监控直接从本地服务程序中获取数据,部署在场站,用于实时反馈充电桩状态(忙、闲状态),便于客户快速的定位到空闲的充电桩进行充电。本地运营客户端主要用于本地充值、场站经营状况管理等功能。中心监控客户端是一个功能全集,用于监控所有的充电桩状态、经营情况等。
后台服务器拆分成接入管理、鉴权、计划、事件四个模块。接入管理负责充电桩的接入和心跳维护,采用Boost ASIO实现,支持30000+充电桩接入,心跳周期为15秒一次。鉴权:对设备进行认证管理,剔除非法的设备、并对设备进行分域管理。计划:负责根据客户定制的计划,定期执行任务或者采集数据。事件: 负责收集和存储充电桩的各类事件,并上报。
拆分的各个模块都支持按域动态扩容,在传输层支持主备IP备份策略,各个模块之间采用Google Protobuf RPC进行交付通信。
2\业务服务下沉、本地自治、多级缓冲
为了防止因为WLAN网络异常影响,我们做了多级防护,多级缓冲,保障数据不丢失,业务不中断。
a,所有模块均支持下沉部署,模块间通过标识和类型进行识别。
b,本地采用SQLite数据库进行本地业务最小化自治,SQLITE保持设备和用户最小信息,支持后付费同步功能,当WLAN侧出现异常,本地可保障业务基本运行,不中断,WLAN恢复后可自动同步信息到数据中心。
c,对于关键数据采用确认机制和多重缓冲,例如WLAN网络异常,在本地保存60+天以上的业务数据缓冲LOGS, WLAN恢复后,自动同步到数据中心。
d,数据进行层层过滤,每层过滤后将最小量级数据上报给上一层,避免数据中心数据库爆裂式增长,满足核心基础数据要求为准要。
3\Go语言尝试、统一应用层接口
除了在自身架构上的调整,为了提供接口给第三方应用,按照要求,我们采用REST接口,并将服务层和应用层进行彻底隔离,统一接口,按域区分不同的应用和权限,支持多应用接入。因此我们新拆分的中心监控客户端进行调整,也通过统一的接口模块接入到后台服务中,不过我们对域进行保留,0x00~0x80的域认为是自己系统的设备。其他域开放给第三方应用。在这个过程中第一次推荐采用Go语言实现,引用了BeeGo开源代码作为基础框架,同时支持WebSocket接口方式发布即时状态、告警和事件。在后续朋友的开发过程中,足以证明,Go语言天生就是做互联网的开发语言,极高的开发速率。为了防止统一接口管理模块存在性能瓶颈,我们采用Zookeeper + Nginx 作为集群基础框架,提高稳定性,便于后续轻松扩容。

经过2个月的架构调整,整套系统按期交付,即兼容了老系统的基础模块,又完成了和第三方应用的业务对接,做到了业务上的平滑过渡,性能有原来的30个场站规模,演进成可以平滑扩容的架构,初步预估可以做到10万个充电桩的接入和业务运营。经过这个项目历练,朋友在微服务框架上有了全新的认识,也被Go语言的高校的开发效率和朴质的编程规范折服。

时间: 2024-10-31 07:20:06

C/S模式充电桩管理软件向微服务架构演进的相关文章

IBM Rational DOORS一款需求管理软件访问OSLC服务

IBM® Rational® DOORS® 是一款需求管理软件,旨在为复杂的嵌入式系统开发提供帮助.Rational DOORS V9.3 实现了 OSLC Requirements Management V1,并且从 V9.4 标准开始实现了 OSLC Requirements Management V2 接口.本文参考了 DOORS V9.4 的内容. 备注: 要使用这些服务,必须安装和配置 IBM Rational DOORS Web Access,这是 DOORS 的 Web 接口. 任

微服务架构设计 (六): 微服务间的共享的管理

在微服务的架构下, 产品或许会有上百个或上千个微服务.所以, 当这些上百个或上千个微服务, 同时都依赖于某个库 (Library) 时, 则当此共享的库, 即使只是针对某个微服务做些很少量的修改, 也可能会对其他上百个或上千个微服务, 造成不可预期的影响. 但在实际的项目中, 产品中的微服务又无法避免的会对某些库 (Library) 产生依赖; 共享某些库 (Library). 所以, 架构师必需要知道要如何管理微服务间的共享? 微服务会形成共享的原因, 主要是来自于: 微服务共同继承于某个抽象

微服务:真正的架构模式

本文讲的是微服务:真正的架构模式[编者的话]本文来自Medium,通过比较CRUD app和数据流app两种应用类型的微服务化探索来向听众介绍微服务. 简介 微服务的神秘和背后的知识令我着迷.微服务作为概念,它属于现代最有趣的架构之一.微服务应用广泛,涉及不同的使用场景.但也有很多地方模糊不清,难以定论. 人们在讨论微服务时,我会努力理解他们的真实意图.尽管在上一次演讲中我分享了对微服务的认识,但我很清楚其它公司和我们使用的架构是不一样的.最近我询问了一位同行,了解到他们部署微服务的方式(和我)

新能源产业初显规模 充电桩运营模式亟待改善

自国家鼓励充电基础设施政策发布后,各地纷纷加大投入力度建设充电桩,充电桩业务企业也纷纷宣布将在北上广布局数万充电桩. 数据显示,2015年累计生产新能源汽车37.90万辆,同比增长4倍.其中,纯电动乘用车生产14.28万辆,同比增长3倍,插电式混合动力乘用车生产6.36万辆,同比增长3倍:纯电动商用车生产14.79万辆,同比增长8倍,插电式混合动力商用车生产2.46万辆,同比增长79%.新能源汽车整体呈爆发式发展. 新能源产业初显规模 2015年10月,国务院办公厅发布<关于加快电动电动汽车基础

本土管理软件“贴身”登“高”

编者按/ 逆水行舟,不进则退.在中国的管理软件市场中,"多空"势力此消彼长.如果说早年还迷信着"外来的和尚好念经",那么最近几年本土软件厂商的表现则说明,接了地气长出来的土特产,别具风味.云计算时代的到来,将引发又一场激烈的攻防争夺,在下一个10年中,谁会成为称霸武林的常胜将军? 谁的胜利 怨念终于可以化解. 管理软件市场早早就是中外厂商混战的一片红海,但也是中国最有希望能超越国外厂商的一块领地.国产管理软件从低端往高端慢慢挺进.2002年是一个转折点,国产管理软件

远光软件陈利浩:管理软件行业的两个发展趋势

作为唯一的电力行业专业软件上市公司,国内两大电网公司.五大发电集团都是远光软件的客户.目前电力行业特别是电网运营整体盈利能力仍然较强,电力行业信息化未来有很大的发展空间,远光软件如何保持这个细分行业的龙头地位并拓展更广的市场?为此,记者专访了远光软件董事长陈利浩. 记者:公司全面推进的国网SG186业务,一旦交付是不是会面临一个产品空挡期?远光在电力财务软件市场占有85%的份额,如何看待未来的业务拓展前景?远光如果想要继续保持电力行业软件龙头地位,它的核心竞争优势是什么? 陈利浩:公司未来的市场

本土管理软件绝地反击强攻高端市场

管理软件市场早早就是中外厂商混战的一片红海,但也是中国最有希望超越国外厂商的一块领地.2002年是一个转折点,国产管理软件的市场份额超过国外厂商,此后几年差距还在不断拉大,到2009年年初,国内厂商所占份额为77.5%,国外厂商为22.5%. 2009年年底,又将是一个转折点.目前,国产管理软件从低端往高端慢慢挺进,不但守住了自己的阵地,而且在国际厂商占据优势的高端领域实现了突破甚至超越. 挣扎:七年的切肤之痛 如果10年前,谈及国产管理软件做高端市场,厂商自己没有自信,客户更是不屑.但今天的超

致远载誉2017中国IT市场年会,12年蝉联中国协同管理软件市场占有率第一

2017年3月16日,中国权威ICT研究机构赛迪顾问股份有限公司(CCID)在京成功举办以"智能时代·数字经济"为主题的"2017中国IT市场年会.CCID在对中国ICT市场系统化.前瞻性回顾和展望的同时,发布并表彰了2017年中国各细分IT市场的年度市场占有率第一企业.致远软件凭借多年在协同管理领域的持续精耕和创新探索,荣获"2016-2017中国协同管理软件市场占有率第一"殊荣,同时,致远M1移动协同软件荣获"2016-2017年中国移动协同

SAP管理软件通过Oracle SPARC SuperCluster认证

北京,2012年5月9日--甲骨文公司日前宣布SAP管理软件通过了Oracle SPARC SuperCluster T4-4的认证,Oracle SPARC SuperCluster T4-4是一个通用的集成系统,旨在提供最大的简化性.效率.可靠性和性能. 基于SAP NetWeaver技术平台6.4及以上版本并通过了Oracle数据库11g R2认证的SAP基础设施和管理软件,如SAP ERP管理软件和SAP NetWeaver业务仓库,现在可使用SPARC SuperCluster T4‑