通信资源管理系统和方法、存储介质技术方案

技术编号:36865915 阅读:47 留言:0更新日期:2023-03-15 19:07
本申请涉及通信资源管理系统和方法、存储介质,所述系统包括:资源池,其中存放有多个连接资源;业务线程,其配置成从资源池中获取连接资源,并且根据对连接资源的调用结果将其识别为正常连接资源和错误连接资源,其中,正常连接资源将被放回资源池;出错资源队列,其配置成以关于调用测试时间的优先队列存放错误连接资源;以及清理线程,其配置成根据调用测试时间对出错资源队列中的错误连接资源进行连接测试,并且将通过连接测试的错误连接资源放回资源池,将没有通过连接测试的错误连接资源在更新调用测试时间后重新插入到出错资源队列中。队列中。队列中。

【技术实现步骤摘要】
通信资源管理系统和方法、存储介质


[0001]本申请涉及通信资源管理的领域,具体而言,涉及通信资源管理系统和方法、存储介质。

技术介绍

[0002]随着移动互联网的蓬勃发展,大量的并发请求涌入联机系统,这经常会导致联机系统面临很大压力。系统之间的相互调用(如数据库连接,跨系统调用等)由于网络波动和被调用系统存在性能瓶颈等原因,可能会导致请求方各种情况的调用超时。为了避免过多的调用超时影响系统性能,需要尽快的释放超时连接和等待资源,以提高资源利用率、减少响应时间,因此通信资源架构设计应运而生。
[0003]通信资源池架构设计是伴随异步化技术发展起来的。现有的通信资源处理机制普遍是粗粒度的,不支持多种不同类型的连接资源。另一方面,也可能存在高并发处理外部调用事件时超时连接过多等情况,这可能会导致大面积的调用失败,进而影响调用事件处理的准确性。另外,传统的通信资源池设计对出错资源的清理、重连操作耗时较长,影响执行效率,无法满足目前联机系统处理大量系统间调用的需要。
[0004]有鉴于此,需要提出一种改进的通信资源管理机制。

技术实现思路

[0005]本申请的实施例提供了一种通信资源管理系统和方法、存储介质,用于高效地管理通信资源池中的通信资源。
[0006]根据本申请的一方面,提供一种通信资源管理系统。所述系统包括:资源池,其中存放有多个连接资源;业务线程,其配置成从所述资源池中获取连接资源,并且根据对连接资源的调用结果将其识别为正常连接资源和错误连接资源,其中,所述正常连接资源将被放回所述资源池;出错资源队列,其配置成以关于调用测试时间的优先队列存放所述错误连接资源;以及清理线程,其配置成根据所述调用测试时间对所述出错资源队列中的错误连接资源进行连接测试,并且将通过所述连接测试的错误连接资源放回所述资源池,将没有通过所述连接测试的错误连接资源在更新调用测试时间后重新插入到所述出错资源队列中。
[0007]在本申请的一些实施例中,可选地,所述出错资源队列被构造为小根堆形式的优先队列。
[0008]在本申请的一些实施例中,可选地,所述小根堆的每个节点用于存放一个错误连接资源,并且节点的key值为所述错误连接资源的调用测试时间、value值对应于所述错误连接资源。
[0009]在本申请的一些实施例中,可选地,所述清理线程被配置成:访问所述小根堆的根节点;将当前时间与所述根节点的key值作比较;以及在所述根节点的key值大于所述当前时间的情况下退出访问。
[0010]在本申请的一些实施例中,可选地,所述清理线程还配置成在所述根节点的key值小于或者等于所述当前时间的情况下:删除所述根节点并对所述小根堆作再平衡处理;根据所述根节点的value值进行所述连接测试,其中,在所述根节点的value值所对应的错误连接资源通过所述连接测试的情况下将其放回所述资源池;以及在所述根节点的value值所对应的错误连接资源没有通过所述连接测试的情况下:将所述根节点的key值更新为当前时间与测试间隔时间之和以形成更新节点;并且,将所述更新节点插入到再平衡后的小根堆中以更新所述小根堆。
[0011]在本申请的一些实施例中,可选地,所述系统还包括:心跳任务队列,其配置成以关于心跳数据发送时间的优先队列存放心跳任务,其中所述心跳任务用于按照所述心跳数据发送时间触发所述资源池中的连接资源;和心跳线程,其配置成根据所述心跳数据发送时间执行所述心跳任务队列中的心跳任务。
[0012]在本申请的一些实施例中,可选地,所述心跳任务队列被构造为小根堆形式的优先队列。
[0013]在本申请的一些实施例中,可选地,所述小根堆的每个节点用于存放一个心跳任务,并且节点的key值为所述心跳任务的心跳数据发送时间、value值对应于所述心跳任务要触发的连接资源。
[0014]在本申请的一些实施例中,可选地,所述心跳线程被配置成:访问所述小根堆的根节点;将当前时间与所述根节点的key值作比较;以及在所述根节点的key值大于所述当前时间的情况下退出访问。
[0015]在本申请的一些实施例中,可选地,所述心跳线程还配置成在所述根节点的key值小于或者等于所述当前时间的情况下:删除所述根节点并对所述小根堆作再平衡处理;根据所述根节点的value值执行所述心跳任务,并且将所述根节点的key值更新为当前时间与心跳间隔时间之和以形成更新节点;并且,将所述更新节点插入到再平衡后的小根堆中以更新所述小根堆。
[0016]在本申请的一些实施例中,可选地,所述资源池被配置成根据连接资源的类型初始化为多个子资源池,并且每个子资源池用于存放同一类型的连接资源。
[0017]在本申请的一些实施例中,可选地,所述子资源池为Redis(Remote Dictionary Server,远程字典服务)子资源池、MySQL(关系型数据库管理系统)子资源池或RPC(Remote Procedure Call,远程过程调用)子资源池。
[0018]在本申请的一些实施例中,可选地,所述业务线程被配置成根据外部请求中的类型字段从相应的子资源池中获取连接资源。
[0019]根据本申请的另一方面,提供一种通信资源管理方法。所述方法包括:从资源池中获取连接资源并调用,其中所述资源池中存放有多个连接资源;根据对连接资源的调用结果将其识别为正常连接资源和错误连接资源,其中,所述正常连接资源将被放回所述资源池;以及根据调用测试时间对出错资源队列中的错误连接资源进行连接测试:将通过所述连接测试的错误连接资源放回所述资源池,并且将没有通过所述连接测试的错误连接资源在更新调用测试时间后重新插入到所述出错资源队列中;其中,所述出错资源队列以关于所述调用测试时间的优先队列存放所述错误连接资源。
[0020]在本申请的一些实施例中,可选地,所述出错资源队列被构造为小根堆形式的优
先队列。
[0021]在本申请的一些实施例中,可选地,所述小根堆的每个节点用于存放一个错误连接资源,并且节点的key值为所述错误连接资源的调用测试时间、value值对应于所述错误连接资源。
[0022]在本申请的一些实施例中,可选地,根据调用测试时间对出错资源队列中的错误连接资源进行连接测试包括:访问所述小根堆的根节点;将当前时间与所述根节点的key值作比较;以及在所述根节点的key值大于所述当前时间的情况下退出访问。
[0023]在本申请的一些实施例中,可选地,根据调用测试时间对出错资源队列中的错误连接资源进行连接测试还包括:在所述根节点的key值小于或者等于所述当前时间的情况下:删除所述根节点并对所述小根堆作再平衡处理;根据所述根节点的value值进行所述连接测试,其中,在所述根节点的value值所对应的错误连接资源通过所述连接测试的情况下将其放回所述资源池;以及在所述根节点的value值所对应的错误连接资源没有通过所述连接测试的情况下:将所述根节点的key值更新为当前时间与测试间隔时间之和以形成更新节点;并且,将所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通信资源管理系统,其特征在于,所述系统包括:资源池,其中存放有多个连接资源;业务线程,其配置成从所述资源池中获取连接资源,并且根据对连接资源的调用结果将其识别为正常连接资源和错误连接资源,其中,所述正常连接资源将被放回所述资源池;出错资源队列,其配置成以关于调用测试时间的优先队列存放所述错误连接资源;以及清理线程,其配置成根据所述调用测试时间对所述出错资源队列中的错误连接资源进行连接测试,并且将通过所述连接测试的错误连接资源放回所述资源池,将没有通过所述连接测试的错误连接资源在更新调用测试时间后重新插入到所述出错资源队列中。2.根据权利要求1所述的系统,其中,所述出错资源队列被构造为小根堆形式的优先队列。3.根据权利要求2所述的系统,其中,所述小根堆的每个节点用于存放一个错误连接资源,并且节点的key值为所述错误连接资源的调用测试时间、value值对应于所述错误连接资源。4.根据权利要求3所述的系统,其中,所述清理线程被配置成:访问所述小根堆的根节点;将当前时间与所述根节点的key值作比较;以及在所述根节点的key值大于所述当前时间的情况下退出访问。5.根据权利要求4所述的系统,其中,所述清理线程还配置成在所述根节点的key值小于或者等于所述当前时间的情况下:删除所述根节点并对所述小根堆作再平衡处理;根据所述根节点的value值进行所述连接测试,其中,在所述根节点的value值所对应的错误连接资源通过所述连接测试的情况下将其放回所述资源池;以及在所述根节点的value值所对应的错误连接资源没有通过所述连接测试的情况下:将所述根节点的key值更新为当前时间与测试间隔时间之和以形成更新节点;并且,将所述更新节点插入到再平衡后的小根堆中以更新所述小根堆。6. 根据权利要求1所述的系统,其中,所述系统还包括:心跳任务队列,其配置成以关于心跳数据发送时间的优先队列存放心跳任务,其中所述心跳任务用于按照所述心跳数据发送时间触发所述资源池中的连接资源;和心跳线程,其配置成根据所述心跳数据发送时间执行所述心跳任务队列中的心跳任务。7.根据权利要求6所述的系统,其中,所述心跳任务队列被构造为小根堆形式的优先队列。8.根据权利要求7所述的系统,其中,所述小根堆的每个节点用于存放一个心跳任务,并且节点的key值为所述心跳任务的心跳数据发送时间、value值对应于所述心跳任务要触发的连接资源。9.根据权利要求8所述的系统,其中,所述心跳线程被配置成:访问所述小根堆的根节点;将当前时间与所述根节点的key值作比较;以及
在所述根节点的key值大于所述当前时间的情况下退出访问。10.根据权利要求9所述的系统,其中,所述心跳线程还配置成在所述根节点的key值小于或者等于所述当前时间的情况下:删除所述根节点并对所述小根堆作再平衡处理;根据所述根节点的value值执行所述心跳任务,并且将所述根节点的key值更新为当前时间与心跳间隔时间之和以形成更新节点;并且,将所述更新节点插入到再平衡后的小根堆中以更新所述小根堆。11.根据权利要求1所述的系统,其中,所述资源池被配置成根据连接资源的类型初始化为多个子资源池,并且每个子资源池用于存放同一类型的连接资源。12.根据权利要求11所述的系统,其中,所述子资源池为Redis子资源池、MySQL子资源池或RPC子资源池。13.根据权利要求11所述的系统,其中,所述业务线程被配置成根据外部请求中的类型字段从相应的子资源池中获取连接资源。14.一种通信资源管理方法,其特征在于,所述方法包括:从资源池中获取连接资源并调用,其中所述资源池中存放有多个连接资源;根据对连接资源的调用结果将其识别为正常连接资源和错误连接资源,其...

【专利技术属性】
技术研发人员:马聪胡卓刘永振闻于天
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:

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

1