一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种二维电网分布式缓存服务系统的制作方法

2022-03-09 02:19:19 来源:中国专利 TAG:


1.本发明涉及服务化系统技术领域,尤其是一种二维电网分布式缓存服务系统。


背景技术:

2.在实现轻量化cs建模客户端时,客户端对电网的查询、分析、图形浏览需要由服务端快速提供数据。
3.经过分析,在已经实现的服务程序中空间信息服务是符合需求的。但空间信息服务存在以下缺陷,导致不能完全满足需求:
4.1、对象模型复杂:版本模型、设备对象模型复杂,造成程序稳定性差、学习成本高、维护困难;
5.2、程序加载更新慢:复杂的加载更新逻辑复杂,造成加载、增量更新速度慢;
6.3、读写锁定严重:程序的对外提供的服务接口、内部业务逻辑、数据更新逻辑三者之间存在冲突,需要使用读写锁来进行互斥锁定,严重影响程序的各项性能,甚至造成程序完全卡死;
7.4、服务保存用户状态:服务使用了token验证机制,token保存了较多的上下文信息,导致服务是包含用户状态的,不能很好的提供负载均衡的支持;
8.5、占用较大内存:服务包含运行版本、变更版本两个版本的数据,变更版本重复包含了大量的运行版本数据,占用了大量内存。


技术实现要素:

9.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种二维电网分布式缓存服务系统.
10.本发明所采取的技术方案是:
11.本发明提供一种二维电网分布式缓存服务系统,包括:
12.网络层,用于接收由用户终端发送的请求信息,并根据网络协议和报文协议,将所述请求信息转发给对应的服务接口,同时将所述服务接口返回的结构体处理成报文,将所述报文返回至所述用户终端;
13.服务接口,用于接收所述请求信息,并调用相应的业务逻辑组件进行处理得到结构体,并将所述结构体返回至所述网络层;
14.业务逻辑组件,用于被所述服务接口调用以对所述请求信息进行处理得到所述结构体;
15.数据缓存模块,用于将数据库中的数据抽象为内存模型并加载到内存中;
16.公共组件,用于对基础功能进行封装。
17.进一步地,所述网络层还用于执行以下步骤之一:
18.分布式服务调用追踪,以根据追踪到的调用信息分析服务的性能和依赖关系;
19.或者,
20.将当前服务注册到注册中心,以使其他服务获取所述当前服务的地址和状态信息;
21.或者,
22.将静态文件和网页发布到指定目录中;
23.或者,
24.通过服务的http功能获取文件和网页。
25.进一步地,所述网络层还用于支持restful风格请求、soap协议请求和rpc请求中的至少一个。
26.进一步地,所述服务接口包括配置查询接口、设备查询接口、空间分析接口、拓扑分析接口、站线变户接口、矢量瓦片接口、数据校验接口、用户登录接口和专题图接口。
27.进一步地,
28.所述配置查询接口用于根据用户终端的请求,将指定的配置返回至所述用户终端;
29.所述设备查询接口用于根据第一信息查询指定的设备属性信息,所述第一信息包括设备id、设备名称、对象关系、所属站房、所属线路和所属部门;
30.所述空间分析接口用于提供第一空间位置的设备查询功能,所述第一空间位置包括圆、矩形、多边形、点缓冲区、线缓冲区、多边形缓冲区和设备缓冲区;
31.所述拓扑分析接口用于通过最短路径或者供电半径或者供电范围或者单线设备分析进行拓扑分析;
32.所述站线变户接口用于结合电网设备数据、营销用户数据,提供用户查询、电网设备和用户关联查询和站线变户关系查询;
33.所述矢量瓦片接口用于根据不同的矢量瓦片配置信息和所述请求信息,提供符合mapbox vector tile格式的矢量瓦片数据;
34.所述数据校验接用于根据指定的校验规则,对指定范围内的数据进行数据质量校验;
35.所述用户登录接口用于验证用户的身份信息,并根据验证结果确定是否允许所述用户登录;
36.所述专题图接口用于根据不同的专题图,提供生成专题的电网设备数据。
37.进一步地,所述业务逻辑组件包括属性查询组件、设备查询组件、空间分析组件、拓扑分析组件、数据校验组件、用户查询组件、矢量瓦片组件、专题图查询组件、统计分析组件和数据导出组件。
38.进一步地,所述数据缓存模块还用于电网数据缓存、营销用户数据缓存、矢量瓦片缓存和配置数据缓存。
39.进一步地,
40.所述电网数据缓存是对电网设备对象数据进行抽象,转换为内存对象,并根据电网设备之间的关系建立相应的关系索引、拓扑索引、空间索引、主键索引和名称索引;
41.所述营销用户数据缓存是将营销用户数据抽象为内存模型并加载到内存中,并建立各种索引信息;
42.所述矢量瓦片缓存是将矢量瓦片进行抽象,并转换为内存对象;
43.所述配置数据缓存是将配置数据进行抽象,并转换为内存对象。
44.进一步地,所述公共组件包括远程服务调用组件、本地配置组件、公共配置组件、日志管理组件、数据库连接组件、图形分析组件、压缩加密组件和互斥锁定组件。
45.进一步地,
46.所述远程服务调用组件用于缓存服务调用其他服务的服务接口;
47.所述本地配置组件用于加载本地配置文件,并为各个功能提供配置信息;
48.所述日志管理组件用于各个功能模块向指定的文件目录或屏幕输出日志信息;
49.所述数据库连接组件用于为各个线程提供各种类型的数据库连接,并负责检测所述数据库连接的状态
50.本发明的有益效果是:
51.本发明的二维电网分布式缓存服务系统,包括网络层、服务接口、业务逻辑组件、数据缓存模块和公共组件,针对空间信息服务的缺点,对服务的内存模型、系统进行充分的改进,从而实现了服务的高性能、高可靠、易扩展等特性,通过分布式缓存技术,大幅提升了服务器启动和服务调用性能,解决了网一级部署数据量大导致的性能瓶颈问题。
52.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
53.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
54.图1为本发明实施例所述二维电网分布式缓存服务系统的示意图;
55.图2为分布式缓存服务的整体技术架构示意图。
具体实施方式
56.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
57.在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
58.在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数。如果有描述到第一、第二、第三等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
59.本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
60.首先,对本技术实施例的发明构思进行阐述。
61.6 1系统建设阶段,电网gis平台采取省集中部署,受限于网络硬件等条件,用户加载一个区局局电网数据可能需要耗费较长的等待时间,直接影响电子化移交工作效率。gis平台上线以来,一直在持续开展性能优化工作,包括数据库配置的优化、数据表的分区和索引优化、sql优化、负载均衡优化、程序加载逻辑优化、供电所加载模式优化、馈线加载模式优化、工单本地缓存优化等,通过减少程序加载的数据量,提升加载速度。系统提供更小粒度的数据加载方法,在当前数据分区加载模式的基础上,进一步提供按供电所、按馈线范围的电网数据加载模式支持,保证了省一级部署的性能指标要求。
62.电网资源中心建设阶段,为归拢整合资源,建设网一级数据中心,对数据访问的性能又提出了新的要求。
63.在业务的早期,为了快速上线和试错,一般都会选用单体系统来构建业务,所有的业务组件都在同一个应用内部。但随着业务的发展,用户量和业务规模越来越大,单体应用的性能会遇到瓶颈,同时用户需求也会越来越多,各个组件耦合在一起会导致研发效率的下降,无法应对快速变更的用户需求。这个时候就需要考虑分布式服务化的系统。
64.服务化系统需要把原来的单体应用进行服务化的拆分,一般先按照业务领域进行纵向拆分,比如电商平台可以拆分为用户中心、订单中心、支付中心等,再按照通用共享维度进行横向拆分,比如订单中心可以继续拆分为订单基础服务、订单聚合服务、订单应用服务等。服务进行合理的拆分和整合后,就可以独立地进行扩缩,解决性能瓶颈,同时也可以独立的进行迭代演进,解决研发效率问题。
65.服务化的系统一般要求选用一套服务化的技术框架,来解决服务之间的互相发现以及服务治理等问题(比如限流、降级、熔断、分流等)。开源框架里面用的比较多的有spring cloud和dubbo这两种。springcloud提供了服务化框架所需要的一整套工具套件,包括服务注册发现netflix eureka、服务调用ribbo和feign、服务治理netflix hystrix、服务配置springcloud config、服务网关netflix zuul和springcloud gateway等;dubbo也提供了类似的一套解决方案,在国内用户也比较多。
66.但是开源框架的使用成本仍然比较高,主要体现在两个方面,首先是开源框架对业务的侵入性比较大,框架代码与业务代码耦合比较紧密,导致升级运维复杂度高,其次是开源框架缺少体系化的解决方案,经常面临不同方案的组合和选择,无论是基于springcloud还是dubbo,构建一整套的微服务解决方案仍然需要投入很多的精力去做方案的选型和不同方案的整合。
67.基于内存计算、gis引擎等计算引擎,实现电网数据查询、空间分析、图形浏览、数据统计、数据质量检测、电网拓扑分析等服务模块,以此来支撑前端应用,以及其他业务系统对电网资源数据的应用需求。
68.在实现轻量化cs建模客户端时,客户端对电网的查询、分析、图形浏览需要由服务端快速提供数据。
69.经过分析,在已经实现的服务程序中空间信息服务是符合需求的。但空间信息服务存在以下缺陷,导致不能完全满足需求:
70.1、对象模型复杂:版本模型、设备对象模型复杂,造成程序稳定性差、学习成本高、维护困难;
71.2、程序加载更新慢:复杂的加载更新逻辑复杂,造成加载、增量更新速度慢;
72.3、读写锁定严重:程序的对外提供的服务接口、内部业务逻辑、数据更新逻辑三者之间存在冲突,需要使用读写锁来进行互斥锁定,严重影响程序的各项性能,甚至造成程序完全卡死;
73.4、服务保存用户状态:服务使用了token验证机制,token保存了较多的上下文信息,导致服务是包含用户状态的,不能很好的提供负载均衡的支持;
74.5、占用较大内存:服务包含运行版本、变更版本两个版本的数据,变更版本重复包含了大量的运行版本数据,占用了大量内存。
75.基于此,本技术实施例提供一种二维电网分布式缓存服务系统,针对空间信息服务的缺点,对服务的内存模型、系统进行充分的改进,从而实现服务的高性能、高可靠、易扩展等特性。
76.参照图1,本发明实施例提供一种二维电网分布式缓存服务系统,包括:
77.网络层,用于接收由用户终端发送的请求信息,并根据网络协议和报文协议,将所述请求信息转发给对应的服务接口,同时将所述服务接口返回的结构体处理成报文,将所述报文返回至所述用户终端;
78.服务接口,用于接收所述请求信息,并调用相应的业务逻辑组件进行处理得到结构体,并将所述结构体返回至所述网络层;
79.业务逻辑组件,用于被所述服务接口调用以对所述请求信息进行处理得到所述结构体;
80.数据缓存模块,用于将数据库中的数据抽象为内存模型并加载到内存中;
81.公共组件,用于对基础功能进行封装。
82.可选地,所述网络层还用于执行以下步骤之一:
83.分布式服务调用追踪,以根据追踪到的调用信息分析服务的性能和依赖关系;
84.或者,
85.将当前服务注册到注册中心,以使其他服务获取所述当前服务的地址和状态信息;
86.或者,
87.将静态文件和网页发布到指定目录中;
88.或者,
89.通过服务的http功能获取文件和网页。
90.可选地,所述网络层还用于支持restful风格请求、soap协议请求和rpc请求中的至少一个。
91.实施例中,网络层负责监听指定的服务接口以接收来自客户端的请求信息,并根据网络协议、报文协议,将请求信息转发给对应的服务接口,在服务接口完成逻辑处理后,将结果封装成特定的数据格式返回给客户端。
92.本实施例中,网络层还具有以下功能:
93.(1)支持多端口的监听,可以在不同的端口提供不同的服务内容;
94.(2)支持的请求主要包括restful风格请求、soap协议请求、rpc请求;
95.(3)支持将当前服务注册到注册中心,方便其他服务发现并获取当前服务的地址、状态等信息;
vector tile格式的矢量瓦片数据。
116.数据校验接口:根据指定的校验规则,对指定范围内的数据进行数据质量校验,并将校验结果返回客户端。
117.用户登录接口:负责验证用户的身份信息,并根据验证结果决定是否允许建模客户端进行登录。
118.专题图接口:主要针对不同的专题图,提供生成专题的电网设备数据。
119.本实施例中,业务逻辑组件是真正的业务逻辑实现层,负责各种功能的具体实现。服务接口中的每个服务都会根据需求调用一个或多个业务逻辑组件中的功能,来组合完成客户端的请求。业务逻辑组件包括属性查询组件、设备查询组件、空间分析组件、拓扑分析组件、数据校验组件、用户查询组件、矢量瓦片组件、专题图查询组件、统计分析组件和数据导出组件。
120.业务逻辑组件除了包含被服务接口调用的,还有一些自动运行的逻辑功能,例如统计分析功能、服务状态报告功能、数据导出功能等。
121.本实施例中,数据缓存模块对各种业务对象进行了抽象,将数据库中的数据结构化为内存中的对象模型,提供对数据库数据的加载到内存的功能、增量更新到内存的功能。
122.数据缓存模块主要包括电网数据缓存、营销用户数据缓存、矢量瓦片缓存、配置数据缓存。
123.其中,电网数据缓存主要是对电网设备对象数据进行抽象,转换为内存对象。并根据电网设备之间的关系建立相应的关系索引、拓扑索引、空间索引、主键索引、名称索引,方便快速查询设备;
124.营销用户数据缓存是将营销用户数据抽象为内存模型并加载到内存中,同时也会建立各种索引信息;
125.矢量瓦片缓存提供对矢量瓦片请求功能的加速功能,服务提供的矢量瓦片是对电网数据的实时切图,已经切图的矢量瓦片会存储在矢量瓦片缓存中,如果当前瓦片对应的空间位置内数据没有发生变化,则下次请求此瓦片时,可以不再生成瓦片,而是直接返回矢量瓦片缓存中的矢量瓦片。
126.本实施例中,公共组件是对基础功能封装,不涉及业务逻辑。
127.公共组件主要包括远程服务调用组件、本地配置组件、公共配置组件、日志管理组件、数据库连接组件、图形分析组件、压缩加密组件、互斥锁定组件等。
128.远程服务调用组件是用于缓存服务调用其他服务的服务接口,例如调用营销用户服务、配置服务等,此组件提供的功能是线程安全的;
129.本地配置组件是用于加载本地配置文件,并为各个功能提供配置信息,配置功能是线程安全;
130.日志管理组件是用于各个功能模块向指定的文件目录或屏幕输出日志信息,日志输出是线程安全的;
131.数据库连接组件是为各个线程提供各种类型的数据库连接,并负责检测数据库连接的状态,及时处理假死、断开的数据库连接,数据库连接组件是线程安全的。
132.参照图2,图2示出了分布式缓存服务系统的整体技术架构,在该技术架构中,除了分布式缓存服务之外,还包括业务应用和数据源,其中业务应用包括建模应用、webgis应
用、停复电应用、业扩报装辅助、规划集成应用、电子化移交支撑等;数据源包括oracle数据库、消息队列、其他服务和磁盘。
133.本实施例中,服务器启动时加载oracle(或其他)数据库中的电网数据,增量更新时读取数据库或消息队列中的增量数据。服务的矢量瓦片缓存数据,可以由服务本身实时切图产生,或通过一次性切图产生全部的数据。本实施例考虑当前系统的建设现状,充分利用现有建设成果进行服务构建,兼顾业务应用现状、数据模型及集成接口,减少对其他系统造成的变更,保证系统应用的平滑过渡。
134.本发明实施例所述二维电网分布式缓存服务系统具有以下技术效果:
135.本发明实施例的二维电网分布式缓存服务系统,包括网络层、服务接口、业务逻辑组件、数据缓存模块和公共组件,针对空间信息服务的缺点,对服务的内存模型、系统进行充分的改进,从而实现了服务的高性能、高可靠、易扩展等特性,通过分布式缓存技术,大幅提升了服务器启动和服务调用性能,解决了网一级部署数据量大导致的性能瓶颈问题。
136.上面结合附图对本技术实施例作了详细说明,但是本技术不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本技术宗旨的前提下作出各种变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献