System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种开通API实现优先级高并发调用的方法及装置制造方法及图纸_技高网

一种开通API实现优先级高并发调用的方法及装置制造方法及图纸

技术编号:40810284 阅读:3 留言:0更新日期:2024-03-28 19:32
本发明专利技术公开一种开通API实现优先级高并发调用的方法及装置,其中方法包括:S01、异步收单,工单下发到应用时,收单接口不直接入库,而是推入redis队列,提高收单性能,同时为保证数据可靠性将数据持久化;S02、主单拆单,拆单线程从工单请求redis队列消费工单,多线程并发获取工单,先进先出方式;S03、子单执行,子单执行线程根据系统队列配置,依据子单业务队列优先级,队列取子单,调用子单执行程序;S04、执行监管,定时扫描收单阶段写入的延迟队列,获取执行时长在设置阈值以上的工单,重置工单状态为挂起状态。本发明专利技术一种开通API实现优先级高并发调用的方法及装置,实现了高并发工单的收单,减少内部损耗,提高工单执行效率,降低系统时延。

【技术实现步骤摘要】

本专利技术涉及通信领域,尤其是一种开通api实现优先级高并发调用的方法及装置。


技术介绍

1、业务开通能力是采控平台的核心能力,日常营业工单、停复机工单具有量级大、实时性要求高等特点,尤其在月初或者月末工单批量下发,如何快速高效的接收工单信息,快速下发执行工单,快速定位中断问题,是关注的主要问题。

2、通常使用的消息队列,如:kafka支持高并发请求,但是对于消息体超大的情况,特别是在开通中报文在兆级以上的,严重影响消息队列的发送及消费性能,且kafka消费后,记录并不能回溯,需要借助其他中间件。


技术实现思路

1、为解决现有技术存在的问题,本专利技术提供一种开通api实现优先级高并发调用的方法及装置,实现了高并发工单的收单,逻辑校验及工单分发作业,支持工单按优先级队列方式,高优先级先行,并减少内部损耗,提高工单执行效率,降低系统时延。

2、为实现上述目的,本专利技术采用下述技术方案:

3、在本专利技术一实施例中,提出了一种开通api实现优先级高并发调用的方法,该方法包括:

4、s01、异步收单,工单下发到应用时,收单接口不直接入库,而是推入redis队列,提高收单性能,同时为保证数据可靠性将数据持久化;

5、进一步地,所述s01包括:

6、s011、生成流水号,将流水号推入redis请求队列;

7、进一步地,所述s011中的redis请求队列,防止redis队列过长,使用多个队列,随机写入流水号。

8、s012、将请求报文、请求头信息序列化,并压缩写入redis;

9、s013、将原请求报文及请求头信息异步持久化写入es,如果写入es失败则持久化写入关系数据库mysql;

10、s014、监控工单执行状态队列。

11、进一步地,所述s014包括:

12、流水号同时写入redis缓存zset结构,成功入库后删除对应流水号,同时页面监控该redis数据,确定是否有流水号未进行处理或超期未执行。

13、工单开始执行跟据流水号通过哈希算法绝对值取余,分n个队列分别保存,可配置,分天建key,设置超时时间,分散存储避免缓存库多实例间数据倾斜。

14、s02、主单拆单,拆单线程从工单请求redis队列消费工单,多线程并发获取工单,先进先出方式;

15、进一步地,所述s02包括:

16、s021、获取流水号,根据流水号获取请求报文和请求头;

17、s022、将主工单报文中附属产品拆分为多个串并行子任务执行序列;

18、s023、拆单后,将子单推入相应的子单执行队列redis队列,根据系统配置高优先级业务设置任务务执行队列,并根据系统配置分片策略,其他使用默认队列;

19、s024、将子单请求报文信息序列化压缩写入redis;并将请求报文信息异步持久化入es,如果写入es失败则持久化入关系数据库mysql。

20、s03、子单执行,子单执行线程根据系统队列配置,依据子单业务队列优先级,队列取子单,调用子单执行程序;

21、消费队列程优先级可配,根据配置高优先级业务队列生成对应的业务消费线程,保证重要子单业务执行、线程数可配,控制南向并发数,100。

22、假如配置了两个队列,则30%的线程只给高优先级业务使用,70%的线程可复用,按配置顺序从队列里面消费子单。

23、s04、执行监管,定时扫描收单阶段写入的延迟队列,获取执行时长在设置阈值以上的工单,重置工单状态为挂起状态。

24、在本专利技术一实施例中,还提出了一种开通api实现优先级高并发调用的装置,该装置包括:

25、异步收单模块110,工单下发到应用时,收单接口不直接入库,而是推入redis队列,提高收单性能,同时为保证数据可靠性将数据持久化;

26、主单拆单模块120,拆单线程从工单请求redis队列消费工单,多线程并发获取工单,先进先出方式;

27、子单执行模块130,子单执行线程根据系统队列配置,依据子单业务队列优先级,队列取子单,调用子单执行程序。

28、执行监管模块140,定时扫描收单阶段写入的延迟队列,获取执行时长在设置阈值以上的工单,重置工单状态为挂起状态。

29、进一步地,所述异步收单模块110包括:

30、流水号模块111,生成流水号,将流水号推入redis请求队列;

31、redis写入模块112,将请求报文、请求头信息序列化,并压缩写入redis;

32、es与mysql写入模块113,将原请求报文及请求头信息异步持久化写入es,如果写入es失败则持久化写入关系数据库mysql;

33、工单状态监控模块114,监控工单执行状态队列。

34、进一步地,所述流水号模块111中的redis请求队列,使用多个队列,随机写入流水号。

35、进一步地,所述工单状态监控模块114包括:

36、流水号同时写入redis缓存zset结构,成功入库后删除对应流水号,同时监控该redis数据,确定是否有流水号未进行处理或超期未执行;

37、工单开始执行跟据流水号通过哈希算法绝对值取余,分n个队列分别保存,分散存储避免缓存库多实例间数据倾斜。

38、进一步地,所述子单执行模块130包括:

39、流水号获取模块121、获取流水号,根据流水号获取请求报文和请求头;

40、子任务拆分模块122、将主工单报文中附属产品拆分为多个串并行子任务执行序列,即将主工单拆分为多个子单;

41、子单入队模块123、拆单后,将子单推入相应的子单执行队列redis队列,根据系统配置高优先级业务设置任务务执行队列,并根据系统配置分片策略,其他使用默认队列;

42、子单请求报文信息写入模块124、将子单请求报文信息序列化压缩写入redis;并将请求报文信息异步持久化入es,如果写入es失败则持久化入关系数据库mysql。

43、进一步地,所述主单拆单模块120中消费队列程优先级可配,根据配置高优先级业务队列生成对应的业务消费线程,保证重要子单业务执行、线程数可配,控制南向并发数,100。

44、在本专利技术一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述开通api实现优先级高并发调用的方法。

45、在本专利技术一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行开通api实现优先级高并发调用的方法的计算机程序。

46、有益效果:

47、本专利技术一种开通api实现优先级高并发调用的方法及装置,基于redis、es实现异步队列,避免开通工单报文超大传输对kafka、rock本文档来自技高网...

【技术保护点】

1.一种开通API实现优先级高并发调用的方法,其特征在于,该方法包括:

2.根据权利要求1所述的开通API实现优先级高并发调用的方法,其特征在于,所述S01包括:

3.根据权利要求2所述的开通API实现优先级高并发调用的方法,其特征在于,所述S011中的redis请求队列,使用多个队列,随机写入流水号。

4.根据权利要求2所述的开通API实现优先级高并发调用的方法,其特征在于,所述S014包括:

5.根据权利要求1所述的开通API实现优先级高并发调用的方法,其特征在于,所述S02包括:

6.根据权利要求1所述的开通API实现优先级高并发调用的方法,其特征在于,所述S03中消费队列程优先级可配,根据配置高优先级业务队列生成对应的业务消费线程、线程数可配。

7.一种开通API实现优先级高并发调用的装置,其特征在于,该装置包括:

8.根据权利要求7所述的开通API实现优先级高并发调用的装置,其特征在于,所述异步收单模块包括:

9.根据权利要求8所述的开通API实现优先级高并发调用的装置,其特征在于,所述流水号模块中的redis请求队列,使用多个队列,随机写入流水号。

10.根据权利要求8所述的开通API实现优先级高并发调用的装置,其特征在于,所述工单状态监控模块包括:

11.根据权利要求7所述的开通API实现优先级高并发调用的装置,其特征在于,所述子单执行模块包括:

12.根据权利要求7所述的开通API实现优先级高并发调用的装置,其特征在于,所述主单拆单模块中消费队列程优先级可配,根据配置高优先级业务队列生成对应的业务消费线程、线程数可配。

13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6任一项所述方法。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-6任一项所述方法的计算机程序。

...

【技术特征摘要】

1.一种开通api实现优先级高并发调用的方法,其特征在于,该方法包括:

2.根据权利要求1所述的开通api实现优先级高并发调用的方法,其特征在于,所述s01包括:

3.根据权利要求2所述的开通api实现优先级高并发调用的方法,其特征在于,所述s011中的redis请求队列,使用多个队列,随机写入流水号。

4.根据权利要求2所述的开通api实现优先级高并发调用的方法,其特征在于,所述s014包括:

5.根据权利要求1所述的开通api实现优先级高并发调用的方法,其特征在于,所述s02包括:

6.根据权利要求1所述的开通api实现优先级高并发调用的方法,其特征在于,所述s03中消费队列程优先级可配,根据配置高优先级业务队列生成对应的业务消费线程、线程数可配。

7.一种开通api实现优先级高并发调用的装置,其特征在于,该装置包括:

8.根据权利要求7所述的开通api实现优先级高并发调用的装置,其特征在于,所述异...

【专利技术属性】
技术研发人员:徐伟
申请(专利权)人:中盈优创资讯科技有限公司
类型:发明
国别省市:

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

1