用于供水的水量和水费的分布式计算方法及系统技术方案

技术编号:24409808 阅读:27 留言:0更新日期:2020-06-06 08:41
本发明专利技术公开了一种用于供水的水量和水费的分布式计算方法及系统,该方法包括:建立分布式的内存数据库集群;根据用户户数,确定计算模块的数量;将关系型数据库中的用水业务数据根据用户编号提取分配到内存数据库集群中的不同数据集合中;当用户编号对应的业务数据准备完毕后,对分布式消息队列中对应的用户编号添加数据准备完成标识;两个以上的计算模块根据带有数据准备完成标识的用户编号提取用水业务数据进行计算,并将计算结果写入分布式内存数据库集群中,将计算结果以及下一步处理措施写回关系型数据库。本发明专利技术通过采用分布式架构极大地提高了账务计算速度。

Distributed calculation method and system of water quantity and water charge for water supply

【技术实现步骤摘要】
用于供水的水量和水费的分布式计算方法及系统
本专利技术涉及城市供水计费领域,尤其涉及用于供水的水量和水费的分布式计算方法及系统。
技术介绍
随着城市规模扩大和供水户表改造的进行,供水公司下辖用户从十年前的十多万发展到现在百万级的规模。传统的水量水费计算采用传统的应用程序计算结合关系型数据库存储的方式处理,传统账务计算方式(单程序多线程按照账户逐一获取数据、计算并得到结果),因为结构单一,算法简单导致水量、水费计算的实时性不够,如:传统计算架构和算法以不能在所需时间(每小时一次)内完成对所有用户水量水费计算,不能配合智能水表实时自动开关阀等新的供水业务需求,已不能符合当前供水、用水结算的需求。
技术实现思路
本专利技术提供了一种用于供水的水量和水费的分布式计算方法及系统,用以解决传统账务计算方式不能符合当前供水、用水结算的实时性需求的技术问题。为解决上述技术问题,本专利技术提出的技术方案为:一种用于供水的水量和水费的分布式计算方法,包括以下步骤:建立分布式的内存数据库集群;根据待计算的用水业务数据对应的用户户数,确定计算模块的数量;将关系型数据库中的用水业务数据根据用户编号提取分配到内存数据库集群中的不同数据集合中;当用户编号对应的业务数据准备完毕后,对分布式消息队列中对应的用户编号添加数据准备完成标识;两个以上的计算模块从消息队列获取带有数据准备完成标识的用户编号,并根据用户编号从对应的不同数据集合中提取用水业务数据,根据水费计算规则进行计算,并将计算结果写入分布式内存数据库集群中,对分布式消息队列中对应的用户编号添加完成计算标识;从分布式消息队列中获取带有完成计算标识的用户编号,根据用户编号从分布式内存数据库集群中获取对应用户编号的计算结果以及下一步处理措施并将其写回关系型数据库。优选地,用水业务数据包括:水表抄表读数、抄表时间、用户信息、阶梯水价、用水类型、用户减免和账务信息中的一种或者任意几种的组合。优选地,计算结果包括:水费、水量和账户余额;下一步处理措施包括:通知短信和阀控指令。优选地,两个以上的计算模块,还将计算结果异常的用户编号,形成日志写入分布式内存数据库集群中,并形成报警信息写入分布式消息队列中。优选地,将计算结果异常的用户编号形成报警信息写入分布式消息队列中时,若分布式消息队列也产生异常,将写入本地文本文件。优选地,当各业务系统的用水业务数据在发生增加、删除和更改时,将增加、删除和更改后的用水业务数据实时或者按周期推送并同步到分布式内存数据库集群中,以更新对应的用水业务数据。优选地,内存数据库集群设置于三个以上的服务器中,三个以上的服务器网络互连。优选地,计算模块设置于服务器中。本专利技术还提供一种计算机系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的步骤。本专利技术具有以下有益效果:本专利技术的用于供水的水量和水费的分布式计算方法及系统,采用分布式架构,依靠内存读写速度远高于硬盘以及分布式部署叠加多台服务器计算力的优势,可以极大提高账务计算速度。采用本专利技术,50万块智能水表的账务计算时间从目前的70多分钟缩短到10分钟,极大缩短了账务计算时间,同时减少了对实体数据库的压力、减少对服务器处理其他供水业务系统的影响。除了上面所描述的目的、特征和优点之外,本专利技术还有其它的目的、特征和优点。下面将参照附图,对本专利技术作进一步详细的说明。附图说明构成本申请的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是本专利技术优选实施例的用于供水的水量和水费的分布式计算方法的流程示意图。具体实施方式以下结合附图对本专利技术的实施例进行详细说明,但是本专利技术可以由权利要求限定和覆盖的多种不同方式实施。参见图1,本专利技术的用于供水的水量和水费的分布式计算方法,包括以下步骤:S1:建立分布式的内存数据库集群。实施时,内存数据库集群设置于三个以上的服务器中,三个以上的服务器网络互连。例如:运行于X86服务器,服务器数量大于等于3,分布式部署应对服务器崩溃时采取投票机制选举产生主机数,可以是同一机房内的局域网互连的服务器也可以是光纤互联的异地机房中的不同服务器。S2:根据待计算的用水业务数据对应的用户户数,确定计算模块的数量。例如:在一个服务器上部署1至N个互不干涉的计算程序用于计算。S3:将关系型数据库中的用水业务数据根据用户编号提取分配到内存数据库集群中的不同数据集合中;当用户编号对应的业务数据准备完毕后,对分布式消息队列中对应的用户编号添加数据准备完成标识。可以通过在当用户编号下的业务数据准备完毕之后,发送开始计算的标识消息到分布式消息队列当中,进而将分布式消息队列中对应的用户编号添加数据准备完成标识。实施时,用水业务数据通常包括:水表抄表读数、抄表时间、用户信息、阶梯水价、用水类型、用户减免和账务信息中的一种或者任意几种的组合。当各业务系统的用水业务数据在发生增加、删除和更改时,将增加、删除和更改后的用水业务数据实时或者按周期推送并同步到分布式内存数据库集群中,以更新对应的用水业务数据。以此保证数据的实时性,并进一步减少数据准备所需时间。S4:两个以上的计算模块从消息队列获取带有数据准备完成标识的用户编号,并根据用户编号从对应的不同数据集合中提取用水业务数据,根据水费计算规则进行计算,并将计算结果写入分布式内存数据库集群中,对分布式消息队列中对应的用户编号添加完成计算标识。实施时,计算结果通常包括:水费、水量和账户余额;下一步处理措施包括:通知短信和阀控指令(欠费情况)。S5:从分布式消息队列中获取带有完成计算标识的用户编号,根据用户编号从分布式内存数据库集群中获取对应用户编号的计算结果以及下一步处理措施并将其写回关系型数据库。便于下一步使用。在上述过程中,当发生异常时,两个以上的计算模块,还将计算结果异常(如水费、水量数值异常)的用户编号,形成日志写入分布式内存数据库集群中,并形成报警信息写入分布式消息队列中,若分布式消息队列也产生异常,将报警信息写入本地文本文件。本专利技术实施例还提供一种计算机系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法实施例的步骤。采用本专利技术的用于供水的水量和水费的分布式计算方法进行测试,50万块智能水表的账务计算时间从目前的70多分钟缩短到10分钟,极大缩短了账务计算时间,同时减少了对实体数据库的压力、减少对服务器处理其他供水业务系统的影响。综上可知,本专利技术通过采用分布式架构,依靠内存读写速度远高于硬盘以及分布式部署叠加多台服务器计算力的优势可以极大提高账务计算速度。以上所述仅为本专利技术的优选实施例而已,并不用于限制本专利技术,对于本领域的技术人员来本文档来自技高网...

【技术保护点】
1.一种用于供水的水量和水费的分布式计算方法,其特征在于,包括以下步骤:/n建立分布式的内存数据库集群;/n根据待计算的用水业务数据对应的用户户数,确定计算模块的数量;/n将关系型数据库中的用水业务数据根据用户编号提取分配到所述内存数据库集群中的不同数据集合中;当用户编号对应的业务数据准备完毕后,对分布式消息队列中对应的用户编号添加数据准备完成标识;/n两个以上的计算模块从消息队列获取带有数据准备完成标识的用户编号,并根据用户编号从对应的不同数据集合中提取用水业务数据,根据水费计算规则进行计算,并将计算结果写入分布式内存数据库集群中,对分布式消息队列中对应的用户编号添加完成计算标识;/n从分布式消息队列中获取带有完成计算标识的用户编号,根据用户编号从分布式内存数据库集群中获取对应用户编号的计算结果以及下一步处理措施并将其写回关系型数据库。/n

【技术特征摘要】
1.一种用于供水的水量和水费的分布式计算方法,其特征在于,包括以下步骤:
建立分布式的内存数据库集群;
根据待计算的用水业务数据对应的用户户数,确定计算模块的数量;
将关系型数据库中的用水业务数据根据用户编号提取分配到所述内存数据库集群中的不同数据集合中;当用户编号对应的业务数据准备完毕后,对分布式消息队列中对应的用户编号添加数据准备完成标识;
两个以上的计算模块从消息队列获取带有数据准备完成标识的用户编号,并根据用户编号从对应的不同数据集合中提取用水业务数据,根据水费计算规则进行计算,并将计算结果写入分布式内存数据库集群中,对分布式消息队列中对应的用户编号添加完成计算标识;
从分布式消息队列中获取带有完成计算标识的用户编号,根据用户编号从分布式内存数据库集群中获取对应用户编号的计算结果以及下一步处理措施并将其写回关系型数据库。


2.根据权利要求1所述的用于供水的水量和水费的分布式计算方法,其特征在于,所述用水业务数据包括:水表抄表读数、抄表时间、用户信息、阶梯水价、用水类型、用户减免和账务信息中的一种或者任意几种的组合。


3.根据权利要求1所述的用于供水的水量和水费的分布式计算方法,其特征在于,所述计算结果包括:水费、水量和账户余额;所述下一步处理措施包括:通知短信和阀控指令。


4.根...

【专利技术属性】
技术研发人员:袁卓异赵琰蒋宏晖唐璞
申请(专利权)人:湖南华博信息技术有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1