上官霞
摘 要:省级电力企业日计费平台需要支撑千万级用户在一个自然日内完成所有电费计算相关任务,传统技术架构无法实现业务目标;数据处理与计算是平台技术设计的关键,本文重点分析数据处理与计算技术关键设计思路,以及在与微服务架构的融合设计,实现业务的快速响应、IT资源的动态扩展,支撑业务目标的实现。
关键词:省级电力企业;数据计算体系;分布式架构;微服务
中图分类号:TM912 文献标识码:A 文章编号:1671-2064(2018)18-0203-04
1 传统架构计费系统遇到技术瓶颈
传统电力计费业务是在手工业务基础上发展起来的按月计费,具体操作时是按照用户行业、所在区域及地理位置等属性,将不同的用户划分到一个月中的不同日期进行抄表、计费、收费,习惯上称这种计费模式为按抄表例日计费;随着智能电表的普及和用户对计费实时性的要求越来越高,传统按抄表例日计费的模式已越来越不能满足用户对电力消费实时性感知的需求。现阶段电力计费技术正朝着按日计费、甚至实时计费的方向发展。省级电力企业计费业务复杂度高、用户基数大、需求变化快、性能要求高,特别是近几年,随着社会生活水平的进步,用户在应用体验、实时性、智能化等方面要求越来越高,促使电力计费业务呈现变化更快、形式更多样化的特征。
经测试,如果采用传统架构进行按日计费,应用服务器CPU使用超过60%、内存使用率达到99%,大部分时间超过警戒指标,性能趋于饱和。数据库服务器内存使用率高达93%,CPU使用率高达80%,性能趋于饱和,且无法简单增加服务器实现性能扩展,只能通过增加内存、CPU个数实现性能扩展,性能扩展的空间小。
基于业务发展需求和集团公司信息化方向指引,采用分布式微服务技术路线,建设了高效率、高可靠的创新型省级电力企业实时日计费平台,实现IT资源动态分配、性能弹性伸展、功能逐步注入,满足全省千万级数量的用户当日抄表采集、当日完成计费的业务要求和计费业务的快速变化发展要求。
2 数据处理与计算体系总体设计思路
按照信息结构化设计方法论中的IPO设计思路,数据处理环节可以分为输入(Input)、加工(Processing)、输出(Output)三类,省级电力企业日计费平台数据处理与计算体系总体框架如图1所示。
数据输入环节主要是各类业务数据和智能电表数据以合适的方式输入到电力企业日计费平台,数据加工环节主要是指电力企业日计费平台的数据存储、数据计算、数据应用,输出环节主要是指电力企业日计费平台将数据输出到各业务系统。
3 数据交互关键技术
数据交互技术是指数据输入(Input)、输出(Output)过程中涉及到的技术,对于省级计费平台涉及用户超过千万,数据记录数超过亿级,发何有效、及时、有序、准确地处理大数据量的输入、输出,对平台是个挑战。
3.1 数据交互技术
日计费平台主要使用营销基础档案数据及计费参数、抄表示数三大类主要数据,通过逻辑运算完成整个计费过程,与营销系统间的数据交互简图如图2所示。
3.1.1 业务基础数据实时获取
采用成熟可靠的商业化复制软件,保障业务基础数据从源系统中实时可靠同步至本系统。满足上层业务开展的数据需求。商业化复制软件基于数据库日志分析原理,能高效的获取源端系统的数据变化情况,实现增量数据的实时复制,保障目标业务系统的实时性需求。
3.1.2 业务结果数据可控回写
营销系统为核心的业务系统,涉及多套外围系统数据复制软件,如管理库复制,灾备中心复制、基础数据平台复制、国网客户复制、稽查系统复制等。全省计费结果数据需采用平稳可控的回写策略,消除对营销及外围系统的冲击。
回写方式优先级:主要区别常规回写和紧急回写,如表1所示。
回写数据分类优先级:依据业务对数据的需求不同,对各类数据回写优化级设计如表2所示。
数据回写时段可控设计:
1号当天大数据量数据生产发生在下午14点后持续到凌晨3点左右,最高峰值为45GB每小时,复制软件OGG处理能力:55GB/H(4extract\4replicat)。
数据回写组件依据以上曲线规律,回写时避开高峰时段,加大低谷时段回写量作到可控回写,保持营销系统平稳的处理数据。
3.1.3 数据回写对原业务影响
全省电费业务数据集中在1天完成,必然会对原来业务产生影响,为保障业务系统平稳,将对受影响业务功能进行调整设计,如表3所示。
3.2 分布式缓存数据访问技术
通过分布式缓存的高速存储及访问技术,提高热点数据的访问效率。分布式缓存是基于内存的缓存服务,支持海量数据的高速访问,支持Key-Value的数据结构,兼容Memcached协议的客户端都可与之通信。同时分布式缓存支持即开即用的方式快速部署;对于服务应用,可通过缓存服务减轻对数据库的压力,从而提高整体的响应速度。平台支撑提供公共的缓存服务,并对外提供公共API。应用开发者开发的微应用,通过公共API,调用访问缓存服务,与分布式缓存交互。
平台支撑功能提供公用的分布式消息集成服务,对外提供公共API。开发者无需关心底层实现,只要調用接口就可以完成消息的发送和接收等功能。如图4所示。
4 数据存储关键技术设计
4.1 通过分布式数据库设计,解决数据库性能瓶颈
为解决单机数据性能瓶颈,在TPS/QPS/内存容量/磁盘容量等等一系列系统资源上会碰到各类限制。本架构上运用了分布式数据库的读写分离和数据库切分技术。
分布式数据库与传统数据库访问协议一样,都采用JDBC协议。应用通过持久化框架,并实现了支持多数据源操作事物控制框架。应用开发者,可以通过公共API,可以调用访问分布式数据库。系统监控数据库性能瓶颈时,可以根据秒级扩容切换,对应用影响极小。如图5所示。
4.2 数据拆分存储
为提升数据读写性能,需要根据业务逻辑、数据关联需求及系统特性进行的数据逻辑拆分存储,常用的数据拆分方式有分表和分区。
本系统为提升程序通用性,提升开发效率采用分区处理方式对大表数据进行逻辑拆分。
4.2.1 数据拆分原则
以业务应用需求为依据,均衡拆分数据。单表数据量大于2GB的表,需要进行拆分。
4.2.2 拆分区域存储思路
数据拆分主要针对数据大表,电费计算业务大表主要是“基础档案”、“档案快照”、“计费快照”、“电度电费”,“电价电费”。电费计算业务的开展以管理单位下的抄表段为基础,业务数据应用均在同一单位范围,以管理单位为条件将数据拆分到多个逻辑分区中。电费计算以月为工作周期,需处理近1600万用户的电费测算,单个逻辑分区内以时间为条件将数据拆分到多个表,从而实现数据的多级分区。如图6所示:
具体拆分设计如下:
(1)基础档案类数据大表,按单位字段作一级拆分(以范围拆分方法,将数据按单位拆分)。如:用户档案表C_CONS数据1600万,以范围拆分方法,将数据按单位拆分成多个逻辑分区,分散存储IO压力加快数据查询速度。
(2)电费计算类数据大表,按单位和时间字段作两级拆分(先以范围拆分方法,将数据按单位拆分,再列表拆分方法,将数据按天拆分)。如:用电客户快照ARC_E_CONS_SNAP每月费控用户按1600万计算,按单位拆分为多个一级分区,再按月拆分成多个二级分区,分散存储IO压力加快数据查询速度。
4.2.3 数据存储及分布
营销集中抄表核算应用数据存储主要分布于两大区域:高速存储区、数据持久层。
全省1600万用户,一天完成全省计算需要反复并发读取档案快照、计费快照等快照数据,数据读取形成热点,此部分数据在作冗余设计之后,采用高速存储技术,提升数据响应时间,加快测算速度。
档案数据、抄表数据以及计算之后的电费数据,量体较大且数据批量加载,对存储IO能力及存储容量要求压力较大,需要分散存储解决IO及存储上限。此部分数据应用采用具备横向扩展能力存储设备进行管理。
全省计算结果数据量较大,系统仅保留3个月电费计算结果数据,不作历史数据存储。所有结果数据回写营销业务系统存储,作持久层存储。如图7所示。
5 数据计算及应用关键技术
基于微服务的分布式技术。微服务架构的优点是服务作为工作单元可以非常便利的管理、可以非常快速的动态扩展,服务之间解除耦合,减少依赖,极大的提供了稳定性,为运维管理动态发布提供了良好的架构支持。微服务功能单一,服务接口友好,为业务系统升级和扩展提供了良好的技术基础。微服务粒度小,轻便灵活,实现快速灵活部署,提高运维效率和系统性能。
(1)单一的微服务功能尽可能实现单一独立的功能,业务边界清晰,避免业务耦合。
(2)服务间的交互通过轻量级的API接口实现。
(3)采用容器化技术进行微服务的封装、部署、管控。为不同类型的微服务提供差异化的管理策略,并对服务进行服务设计、编排、授权、配置,以实现复杂多样的应用场景能够快速交付、独立部署、实现高可用、弹性扩展。同时,对微服务设计了整套应用程序部署流程,包括服务注册和发布、服务接入管控、服务调度、服务恢复和服务监控等。
6 结语
本文主要分析省级电力企业日计费平台在数据处理与计算方面的实践,通过数据交互技术、数据存储技术、数据计算与应用技术的成功实践应用,支撑千万级用户当日计费的业务需求,从而最终实现业务服务化转型,开启电力营销业务应用全面微服务化转型的大门,促进微服务理念在电力企业的应用,为营销业务应用整体微服务改造提供借鉴经验。
参考文献
[1]Eric Evans.《領域驱动设计:软件核心复杂性应对之道》[M].人民邮电出版社,2016.
[2]王磊.《微服务架构与实践》[M].电子工业出版社,2016.
[3]李林锋.《分布式服务框架原理与实践》[M].电子工业出版社,2016.
[4]Sam Newman.《微服务设计》[M].人民邮电出版社,2016.
[5]马丁 L.阿伯特.《架构即未来》[M].机械工业出版社,2016.