基于分布式缓存的多级财政数据交互方法及系统的制作方法

文档序号:7779345阅读:185来源:国知局
基于分布式缓存的多级财政数据交互方法及系统的制作方法
【专利摘要】本发明公开了一种基于分布式缓存的多级财政数据交互方法及系统,属于数据处理【技术领域】。该方法及系统的服务器端在接收客户端发送的财政基础数据获取请求时,首先查看是否是首次接收到该财政基础数据获取请求,若是则根据该请求从数据库中获取对应的财政基础数据后发送到客户端,并将获取的财政基础数据缓存至分布式缓存层中;若否则直接从分布式缓存层中获取对应的财政基础数据后发送至客户端。通过本发明所述的方法及系统,有效提高了财政数据存储与交互的效率。
【专利说明】基于分布式缓存的多级财政数据交互方法及系统
【技术领域】
[0001]本发明涉及财政管理【技术领域】,具体涉及一种基于分布式缓存的多级财政数据交互方法及系统。
【背景技术】
[0002]传统的财政管理软件是基于单财政的管理软件,一级政府一级财政一套软件,从财政业务数据量和用户并发量角度对于财政管理软件的压力都不大,但随着我国财政业领域对财政管理方式发生的根本变化和财政资金监管的业务需求的变化,财政领域越来越重视多级政府多级财政一套软件的需要,实现从省本级、地市级和区县的全覆盖,全省中各级财政的资金收支、管理、监控都在一套软件中实现,这就给财政管理软件的性能提出了巨大的挑战,从业务数据量到用户并发量都提升了至少10倍,原有单级财政管理软件的软件模型已经不适用于多级财政管理软件的应用模式,为了适应财政管理模式和业务的创新需对现有单财政的软件模型进行重构和优化,本发明的目的正是为了大幅度提升多级财政国库软件性能。
[0003]现有财政管理模式中的缺陷与不足:
[0004]1、现有财政领域的单级财政管理系统的软件性能难以支撑愈演愈热的多级财政管理软件所需承载大规模并发应用和海量业务数据。
[0005]2、现有财政领域的单级财政管理软件稳定性不足以支撑多级财政管理软件在大规模并发状态下所要求的稳定性,由于大量对象及信息的存储导致应用内存溢出风险极大。

【发明内容】

[0006]针对现有技术中存在的缺陷,本发明的目的在于提供一种基于分布式缓存的多级财政数据交互方法及系统,实现多级财政数据的管控和监管,有效提高财政数据管理的效率、提升财政管理软件的性能。
[0007]为实现上述目的,本发明采用的技术方案为:一种基于分布式缓存的多级财政数据交互系统,包括服务器端、与服务器连接的客户端和数据库,该系统还包括与服务器端连接的分布式缓存层,所述的分布式缓存层用于缓存服务器端从数据库获取的财政基础数据。
[0008]进一步,如上所述的一种基于分布式缓存的多级财政数据交互系统,所述的财政基础数据包括业务数据、权限数据、工作流数据、记账数据和用于支撑财政管理系统正常运行的系统级数据。
[0009]再进一步,如上所述的一种基于分布式缓存的多级财政数据交互系统,所述的服务器端用于在客户端首次向服务器端发送某财政基础数据获取请求时,根据该请求从数据库中获取财政基础数据,将财政基础数据发送到客户端,并将财政基础数据缓存到分布式缓存层中;还用于在客户端再向服务器端发送某财政基础数据获取请求时,根据该请求从分布式缓存层中获取财政基础数据,并将财政基础数据发送到客户端。
[0010]更进一步,如上所述的一种基于分布式缓存的多级财政数据交互系统,所述的服务器端还用于在数据库中的财政基础数据发生变化时,将分布式缓存层中的财政基础数据进行同步更新。
[0011]一种基于分布式缓存的多级财政数据交互方法,包括以下步骤:
[0012](I)客户端根据需要向服务器端发送财政基础数据获取请求;
[0013](2)服务器端接收客户端发送的财政基础数据获取请求,并根据该请求从数据库或者分布式缓存层中获取对应的财政基础数据后发送到客户端。
[0014]进一步,如上所述的一种基于分布式缓存的多级财政数据交互方法,步骤(2)中,服务器端根据客户端的财政基础数据获取请求从数据库或者分布式缓存层中获取对应的财政基础数据的具体方式包括:
[0015]查看是否是首次接收到所述的财政基础数据获取请求,若是则根据该请求从数据库中获取对应的财政基础数据,并将获取的财政基础数据缓存至分布式缓存层中;若否则直接从分布式缓存层中获取对应的财政基础数据。
[0016]进一步,如上所述的一种基于分布式缓存的多级财政数据交互方法,步骤(2)中,服务器端直接从分布式缓存层获取财政基础数据时,如果分布式缓存层存在异常,服务器端从数据库中进行财政基础数据的获取。
[0017]进一步,如上所述的一种基于分布式缓存的多级财政数据交互方法,所述的分布式缓存层采用键值存储方式进行财政基础数据的存储。
[0018]再进一步,如上所述的一种基于分布式缓存的多级财政数据交互方法,服务器端将财政基础数据缓存至分布式缓存层时,将大于设定阈值的财政基础数据包分包划分后缓存至分布式缓存层中;服务器端从分布式缓存层中获取财政基础数据时,如果数据进行了划分,将数据组装后再发送到客户端。
[0019]更进一步,如上所述的一种基于分布式缓存的多级财政数据交互方法,该方法还包括:当数据库中的财政基础数据发生变化时,将分布式缓存层中的财政基础数据进行相应的同步更新。
[0020]本发明的有益效果在于:
[0021]1、相比现有财政领域管理软件系统性能可支撑百人应用规模,使用此软件模型后的财政管理软件可以承载千人规模乃至万人规模应用,为财政领域向多级财政的管控、资金监管、业务统一铺平了道路。将原有各地市区县独立采购并维护国库软件的工作模式调整为省级单位或地市级单位统一采购硬件部署,为财政用户节约了大量硬件重复性投入,真正意义上实现了多级财政一套软件,实现了多级财政管控和资金监管。
[0022]2、该方法及系统的软件模型已应用于财政国库管理软件,并将软件的性能由原有的百万级业务数据、100并发规模的响应时间15秒左右的性能,提升至千万级业务数据、上千并发规模响应时间在3秒左右的性能指标。
【专利附图】

【附图说明】
[0023]图1为【具体实施方式】中一种基于分布式缓存的多级财政数据处理系统的结构框图;[0024]图2为【具体实施方式】中一种基于分布式缓存的多级财政数据处理方法的流程图;
[0025]图3为【具体实施方式】中客户端确认数据所存储的分布式缓存服务器的流程示意图。
【具体实施方式】
[0026]下面结合说明书附图与【具体实施方式】对本发明做进一步的详细说明。
[0027]图1示出了本发明【具体实施方式】中一种基于分布式缓存的多级财政数据交互系统的结构框图,该系统主要包括客户端11、服务器端12、数据库13和分布式缓存层14,用户通过客户端11向服务器端12发送获取财政基础数据的请求。具体的,数据库13用于存储财政管理系统中的多级财政基础数据,分布式缓存层14用于缓存服务器端12从数据库13获取的财政基础数据,服务器端12用于根据客户端11的财政基础数据获取请求从数据库
13或者分布式缓存层14中获取请求的财政基础数据。
[0028]本【具体实施方式】中的财政基础数据主要包括基础业务数据、权限数据、工作流数据、记账数据和用于支撑财政管理系统正常运行的系统级数据,系统级数据主要包括系统框架数据。具体的,基础业务数据包括业务规则、单号规则及财政资金分类等数据,权限数据包括角色分类、角色菜单授权及权限组等数据,工作流数据包括工作流节点状态等数据、记账数据包括额度控制等数据,系统框架数据包括系统功能菜单等数据。
[0029]需要说明的是,本发明中的财政基础数据包括但不限于以上列举的数据,财政基础数据包括众多的数据,这对本领域技术人员来说是公知的。
[0030]本【具体实施方式】中服务器端12根据客户端11的请求获取财政基础数据的具体方式为:服务器端12在首次接收到客户端11发送的某财政基础数据获取请求时,根据该请求从数据库中获取财政基础数据,将财政基础数据发送到客户端,并将财政基础数据缓存到分布式缓存层中;服务器端12再次接收到客户端发送的某财政基础数据获取请求时,根据该请求从分布式缓存层中获取财政基础数据,并将财政基础数据发送到客户端。
[0031]其中,当数据库13中的财政基础数据发生变化时,服务器端12会将分布式缓存层14中的财政基础数据进行同步更新。
[0032]图2示出了基于图1中所示系统的一种基于分布式缓存的多级财政数据交互方法的流程图,该方法主要包括以下步骤:
[0033]步骤S21:客户端根据需要向服务器端发送财政基础数据获取请求;
[0034]步骤S22:服务器端根据客户端的数据获取请求从数据库或者分布式缓存层中获取对应的财政基础数据。
[0035]在财政领域软件管理系统中涵盖业务模型、数据模型、权限模型、工作流模型、记账模型、框架模型、界面模型,各个模型相互融合相互调用形成一套完整的软件模型体系。权限模型、工作流模型、记账模型都属于独立模型,基于软件组件化开发,相互之间通过关联调用进行统一调配。
[0036]上述各模型为财政管理软件的基础模型,模型之间是通过定义对外公开的接口程序进行相互调用,现有的处理方式是根据相应接口和条件到数据库中进行基础模型数据的获取。也就是说现有财政管理软件基本架构是应用服务(服务器端)加数据库服务(数据库)的模式,获取数据的方式均由应用服务从数据库服务中直接加载,或者会在应用服务层面建立一个基于java虚拟机的缓存体系,但是由于受到java虚拟机内存的限制,该缓存体系可缓存的内容非常有限,财政业务中基础数据较为庞大,所以大部分的基础数据还需从数据库获取。
[0037]本【具体实施方式】中将上述各模型中对应的数据通称为财政基础数据,本实施方式中的财政基础数据主要包括基础业务数据、权限数据、工作流数据、记账数据和用于支撑财政管理系统正常运行的系统级数据,系统级数据主要包括系统框架数据。也就是说财政基础数据主要为上述各基础模型中的相关数据,并非具体的财政业务数据。
[0038]用户根据自己应用服务需要通过客户端向服务器端发送财政基础数据获取请求,服务器端收到该请求后,根据该请求从数据库或者分布式缓存层中获取对应的财政基础数据后发送到客户端。服务器端根据客户端的财政基础数据获取请求从数据库或者分布式缓存层中获取对应的财政基础数据的具体方式为:
[0039]查看是否是首次接收到所述的财政基础数据获取请求,若是则根据该请求从数据库中获取对应的财政基础数据,并将获取的财政基础数据缓存至分布式缓存层中;若否则直接从分布式缓存层中获取对应的财政基础数据。
[0040]服务器端直接从分布式缓存层获取财政基础数据时,如果分布式缓存层存在异常(如链接异常或者数据丢失等情况),服务器端从数据库中进行财政基础数据的获取。
[0041]本【具体实施方式】中的分布式缓存层采用键-值存储方式进行财政基础数据的存储。键-值存储,即Key-Value存储,简称KV存储,是现有的一种内存管理体系,它是非关系型数据库存储的一种方式,它的数据按照键值对的形式进行组织,索引和存储。KV存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。采用“键-值”的存储方式基本方式如下:
[0042]在操作系统的内存中维护一个很大的哈希表;
[0043]在缓存启动的时候内存空间就会分配好,为了减少内存管理的碎片,哈希表中的内存按照存储键值的大小进行分块分组管理;
[0044]对于内存已满的情况下,采用LRU的规则对很久未使用的键值对象进行清除,对于已清除的数据内容,内存块不会释放,以便后续有类似大小的数据可以直接存储于该块中。
[0045]通过键-值存储方式将财政基础数据缓存到分布式缓存层中,服务器端根据用户请求获取分布式缓存层中的财政基础数据是时,可以采用分布式算法根据存储的键来计算“键值”存储的地址,并根据该“键值”到相应的分布式缓存服务器上进行数据获取,如图3所示,采用键-值的存储方式将财政基础数据存储到分布式缓存层的缓存服务器集群中,在根据客户端请求获取财政基础数据时,通过分布式算法根据存储键值计算散列值(哈希值)定位到相应的服务器节点,根据定位的节点在对应的分布式缓存服务中获取到需要的数据。
[0046]服务器端将财政基础数据缓存至分布式缓存层时,将大于设定阈值的财政基础数据包分包划分后缓存至分布式缓存层中;服务器端从分布式缓存层中获取财政基础数据时,如果数据进行了划分,将数据组装后再发送到客户端。通过将大对象划分为小对象,分包存储的方式,可有效解决分布式缓存对大对象处理性能低下的问题,保证应用软件的高性能。[0047]本发明通过在现有的财政管理软件基本架构的基础上增加了一分布式缓存层,在服务器端第一次获取基础模型数据时到数据库中进行获取,获取完毕后将数据缓存至分布式缓存层,在基础模型数据未发生变化之前财政管理软件都可以到分布式缓存进行基础模型数据获取。在基础模型数据发生变化后财政管理软件将基础模型数据同步更新至分布式缓存中。
[0048]本发明所述的方法及系统将分布式缓存与软件核心模型整合,将现有软件权限工作流综合模型、权限记账综合模型、框架模型、界面模型通过序列化方式存入分布式缓存中,在需要调用时直接从缓存获取并进行反序列化加载,从而降低数据库复杂关联查询和数据库负载,提升系统并发受理能力。
[0049]此外,本发明所述的方法及系统在应用软件层面同时适配从分布式缓存获取对象数据和从数据库获取对象数据,优先从分布式缓存获取对象数据,当分布式缓存连接异常或者信息丢失的情况下到数据库中进行对象信息的获取,保障即使分布式缓存数据丢失的情况下应用软件业务的正常运行,保证应用软件的高可用性,解决了现有分布式缓存每个节点只存储一份数据,节点之间数据没有冗余备份,一旦任何一个节点的服务停止或者服务器宕机将导致缓存数据的丢失的问题。
[0050]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种基于分布式缓存的多级财政数据交互系统,包括服务器端、与服务器连接的客户端和数据库,其特征在于,该系统还包括与服务器端连接的分布式缓存层,所述的分布式缓存层用于缓存服务器端从数据库获取的财政基础数据。
2.如权利要求1所述的一种基于分布式缓存的多级财政数据交互系统,其特征在于,所述的财政基础数据包括基础业务数据、权限数据、工作流数据、记账数据和用于支撑财政管理系统正常运行的系统级数据。
3.如权利要求1或2所述的一种基于分布式缓存的多级财政数据交互系统,其特征在于,所述的服务器端用于在客户端首次向服务器端发送某财政基础数据获取请求时,根据该请求从数据库中获取财政基础数据,将财政基础数据发送到客户端,并将财政基础数据缓存到分布式缓存层中;还用于在客户端再向服务器端发送某财政基础数据获取请求时,根据该请求从分布式缓存层中获取财政基础数据,并将财政基础数据发送到客户端。
4.如权利要求3所述的一种基于分布式缓存的多级财政数据交互系统,其特征在于,所述的服务器端还用于在数据库中的财政基础数据发生变化时,将分布式缓存层中的财政基础数据进行同步更新。
5.一种基于分布式缓存的多级财政数据交互方法,包括以下步骤: (O客户端根据需要向服务器端发送财政基础数据获取请求; (2)服务器端接收客户端发送的财政基础数据获取请求,并根据该请求从数据库或者分布式缓存层中获取对应的财政基础数据后发送到客户端。
6.如权利要求5所述的一种基于分布式缓存的多级财政数据交互方法,其特征在于,步骤(2)中,服务器端根据客户端的财政基础数据获取请求从数据库或者分布式缓存层中获取对应的财政基础数据的具体方式包括: 查看是否是首次接收到所述的财政基础数据获取请求,若是则根据该请求从数据库中获取对应的财政基础数据,并将获取的财政基础数据缓存至分布式缓存层中;若否则直接从分布式缓存层中获取对应的财政基础数据。
7.如权利要求5或6所述的一种基于分布式缓存的多级财政数据交互方法,其特征在于,步骤(2)中,服务器端直接从分布式缓存层获取财政基础数据时,如果分布式缓存层存在异常,服务器端从数据库中进行财政基础数据的获取。
8.如权利要求7所述的一种基于分布式缓存的多级财政数据交互方法,其特征在于,所述的分布式缓存层采用键-值存储方式进行财政基础数据的存储。
9.如权利要求8所述的一种基于分布式缓存的多级财政数据交互方法,其特征在于,服务器端将财政基础数据缓存至分布式缓存层时,将大于设定阈值的财政基础数据包进行分包划分后缓存至分布式缓存层中;服务器端从分布式缓存层中获取财政基础数据时,如果数据进行了划分,将数据组装后再发送到客户端。
10.如权利要求9所述的一种基于分布式缓存的多级财政数据交互方法,其特征在于,该方法还包括:当数据库中的财政基础数据发生变化时,将分布式缓存层中的财政基础数据进行相应的同步更新。
【文档编号】H04L29/08GK103716375SQ201310654179
【公开日】2014年4月9日 申请日期:2013年12月5日 优先权日:2013年12月5日
【发明者】陈欣, 于贵锁 申请人:北京用友政务软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1