云平台服务账单处理方法及系统技术方案

技术编号:37233319 阅读:8 留言:0更新日期:2023-04-20 23:15
本发明专利技术涉及云平台服务计费技术领域,具体为云平台服务账单处理方法包括以下步骤:计量数据放入redis服务器、发送MQ;逐条计算订单本期账单的费用;逐条生成账单数据存到业务表中;获取用户账单业务表中未支付的账单列表,进行逐条扣款;有益效果为:本发明专利技术提出的云平台服务账单处理方法及系统通过多微服务模块多节点的设计方式,使业务梳理起来更加清晰,有效的降低程序的业务耦合度和复杂度,当数据量更高的时候,只需要增加服务模块的节点即可,提高了系统扩展能力。可,提高了系统扩展能力。可,提高了系统扩展能力。

【技术实现步骤摘要】
云平台服务账单处理方法及系统


[0001]本专利技术涉及云平台服务计费
,具体为云平台服务账单处理方法及系统。

技术介绍

[0002]在云平台服务能力及功能日趋强大和多样的今天,越来越多的公司企业、政府、卫生、医疗单位选择购买云服务器、云硬盘、云数据库等云服务产品来搭建自己的网站门户、办公程序。
[0003]现有技术中,云平台一般会提供了两类计费方式,一类是预付费(即包年包月),一类是后付费(即按需计费),后付费方式中有一种按小时计费方式,即每小时会批量产生一次账单。
[0004]但是,随着用户购买的按需服务产品越来越多,账单量随之成倍增加,作为云平台运营环节中设计账户金额交易的一个环节,就需要一套高效高可用、严谨的后台处理逻辑。

技术实现思路

[0005]本专利技术的目的在于提供云平台服务账单处理方法及系统,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:云平台服务账单处理方法,该处理方法包括以下步骤:
[0007]计量数据放入redis服务器、发送MQ;
[0008]逐条计算订单本期账单的费用;
[0009]逐条生成账单数据存到业务表中;
[0010]获取用户账单业务表中未支付的账单列表,进行逐条扣款。
[0011]优选的,定时任务微服务每小时整点触发,先获已购买取按小时计费服务的用户,然后以用户为单位获取其需本次生成账单的所有订单信息列表,每1000条拆成一组数据,设置唯一的key,比如“本次账单编号”+“用户id”+“第几组”,把订单数据存入redis数据库中,数据过期时间为30分钟;以此key为mq的message发送到Queue_1中。
[0012]优选的,以message作为redis的key获取用户订单信息列表,逐条计算订单本期账单的费用后,再set到redis数据库中,然后以此key为mq的message发送到Queue_2中。
[0013]优选的,以message作为redis的key获取已含费用的用户订单信息列表,逐条生成账单数据存到业务表中,然后以此key为mq的message发送到Queue_3中。
[0014]优选的,获取message后解析出其中的userId,然后通过userId获取该用户账单业务表中未支付的账单列表,进行逐条扣款;若账户余额充足,则本组数据业务流程结束;若账户余额不足以扣除全部的账单,则向订单模块发送欠费停服mq,停服后不再产生账单。
[0015]一种云平台服务账单处理系统,该系统由定时任务模块、产品模块、账单模块以及账户模块构成;
[0016]定时任务模块,用于计量数据放入redis服务器、发送MQ;
[0017]产品模块,用于逐条计算订单本期账单的费用;
[0018]账单模块,用于逐条生成账单数据存到业务表中;
[0019]账户模块,用于获取用户账单业务表中未支付的账单列表,进行逐条扣款。
[0020]优选的,所述定时任务模块中,定时任务微服务每小时整点触发,先获已购买取按小时计费服务的用户,然后以用户为单位获取其需本次生成账单的所有订单信息列表,每1000条拆成一组数据,设置唯一的key,比如“本次账单编号”+“用户id”+“第几组”,把订单数据存入redis数据库中,数据过期时间为30分钟;以此key为mq的message发送到Queue_1中。
[0021]优选的,所述产品模块中,以message作为redis的key获取用户订单信息列表,逐条计算订单本期账单的费用后,再set到redis数据库中,然后以此key为mq的message发送到Queue_2中。
[0022]优选的,所述账单模块中,以message作为redis的key获取已含费用的用户订单信息列表,逐条生成账单数据存到业务表中,然后以此key为mq的message发送到Queue_3中。
[0023]优选的,所述账户模块中,获取message后解析出其中的userId,然后通过userId获取该用户账单业务表中未支付的账单列表,进行逐条扣款;若账户余额充足,则本组数据业务流程结束;若账户余额不足以扣除全部的账单,则向订单模块发送欠费停服mq,停服后不再产生账单。
[0024]与现有技术相比,本专利技术的有益效果是:
[0025]本专利技术提出的云平台服务账单处理方法及系统通过多微服务模块多节点的设计方式,使业务梳理起来更加清晰,有效的降低程序的业务耦合度和复杂度,当数据量更高的时候,只需要增加服务模块的节点即可,提高了系统扩展能力。使用基于消息队列的方式后,系统间调用的问题会减少很多,比如账户模块因为发生故障,需要几分钟来修复。在这几分钟的时间里,账户模块要处理的内存被缓存在消息队列中,账户模块恢复后,继续处理账单信息,可以显著提高系统可靠性,运行平稳性。
附图说明
[0026]图1为本专利技术方法流程图。
具体实施方式
[0027]为了使本专利技术的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本专利技术实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本专利技术一部分实施例,而不是全部的实施例,仅仅用以解释本专利技术实施例,并不用于限定本专利技术实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0028]实施例一
[0029]请参阅图1,本专利技术提供一种技术方案:云平台服务账单处理方法,该处理方法包括以下步骤:
[0030]计量数据放入redis服务器、发送MQ;时任务微服务每小时整点触发,先获已购买取按小时计费服务的用户,然后以用户为单位获取其需本次生成账单的所有订单信息列
表,每1000条拆成一组数据,设置唯一的key,比如“本次账单编号”+“用户id”+“第几组”,把订单数据存入redis数据库中,数据过期时间为30分钟;以此key为mq的message发送到Queue_1中;
[0031]逐条计算订单本期账单的费用;以message作为redis的key获取用户订单信息列表,逐条计算订单本期账单的费用后,再set到redis数据库中,然后以此key为mq的message发送到Queue_2中;
[0032]逐条生成账单数据存到业务表中;以message作为redis的key获取已含费用的用户订单信息列表,逐条生成账单数据存到业务表中,然后以此key为mq的message发送到Queue_3中;
[0033]获取用户账单业务表中未支付的账单列表,进行逐条扣款;获取message后解析出其中的userId,然后通过userId获取该用户账单业务表中未支付的账单列表,进行逐条扣款;若账户余额充足,则本组数据业务流程结束;若账户余额不足以扣除全部的账单,则向订单模块发送欠费停服mq,停服后不再产生账单。
[0034]实施例二
[0035]一种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.云平台服务账单处理方法,其特征在于,该处理方法包括以下步骤:计量数据放入redis服务器、发送MQ;逐条计算订单本期账单的费用;逐条生成账单数据存到业务表中;获取用户账单业务表中未支付的账单列表,进行逐条扣款。2.根据权利要求1所述的云平台服务账单处理方法,其特征在于:定时任务微服务每小时整点触发,先获已购买取按小时计费服务的用户,然后以用户为单位获取其需本次生成账单的所有订单信息列表,每1000条拆成一组数据,设置唯一的key,比如“本次账单编号”+“用户id”+“第几组”,把订单数据存入redis数据库中,数据过期时间为30分钟;以此key为mq的message发送到Queue_1中。3.根据权利要求1所述的云平台服务账单处理方法,其特征在于:以message作为redis的key获取用户订单信息列表,逐条计算订单本期账单的费用后,再set到redis数据库中,然后以此key为mq的message发送到Queue_2中。4.根据权利要求1所述的云平台服务账单处理方法,其特征在于:以message作为redis的key获取已含费用的用户订单信息列表,逐条生成账单数据存到业务表中,然后以此key为mq的message发送到Queue_3中。5.根据权利要求1所述的云平台服务账单处理方法,其特征在于:获取message后解析出其中的userId,然后通过userId获取该用户账单业务表中未支付的账单列表,进行逐条扣款;若账户余额充足,则本组数据业务流程结束;若账户余额不足以扣除全部的账单,则向订单模块发送欠费停服mq,停服后不再产生账单。6.一种如上述权利要求1

5任意一项所述的云平台服务账单处理系统,其特征在于:该系统由定时任务模块、...

【专利技术属性】
技术研发人员:李春雷李腾飞张目飞陈尧
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1