CN113783908A - 服务调用方法、装置、设备及存储介质 - Google Patents

服务调用方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113783908A
CN113783908A CN202010524232.2A CN202010524232A CN113783908A CN 113783908 A CN113783908 A CN 113783908A CN 202010524232 A CN202010524232 A CN 202010524232A CN 113783908 A CN113783908 A CN 113783908A
Authority
CN
China
Prior art keywords
calling
probability
service
node
service providing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010524232.2A
Other languages
English (en)
Other versions
CN113783908B (zh
Inventor
朱龙云
袁文頔
陈阳
李子达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shanghai Co Ltd
Original Assignee
Tencent Technology Shanghai Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shanghai Co Ltd filed Critical Tencent Technology Shanghai Co Ltd
Priority to CN202010524232.2A priority Critical patent/CN113783908B/zh
Publication of CN113783908A publication Critical patent/CN113783908A/zh
Application granted granted Critical
Publication of CN113783908B publication Critical patent/CN113783908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种服务调用方法、装置、设备及存储介质,属于计算机技术领域。所述方法包括:在数据集中获取第i个时间片之前的n个时间片的历史调用数据,该历史调用数据包括服务调用节点调用服务提供节点的成功调用次数和/或失败调用次数。根据该n个时间片的历史调用数据,确定第i个时间片中对服务提供节点的调用概率。之后基于该调用概率,在第i个时间片中对服务提供节点进行调用。由于服务调用节点按照调用概率对服务提供节点进行调用,不只是直接调用或者熔断。本申请提升了服务调用的灵活性。

Description

服务调用方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种服务调用方法、装置、设备及存储介质。
背景技术
微服务架构是一种新兴的软件架构,微服务架构支持将一个大型应用提供的服务拆分为多个子服务。在微服务架构下,通常由应用系统中的节点调用应用系统中的其它节点提供的服务,实现应用系统对外提供服务。
为了防止整个系统瘫痪,在上游节点调用下游节点提供的服务的过程中,当上游节点调用的下游节点出现不可用或响应超时的情况时,上游节点会触发熔断。“熔断”是指上游节点会暂停对该下游节点的调用。其中,上游节点是应用系统中的任一节点,下游节点是可以被该上游节点调用其提供的服务的节点。
目前,通常对下游节点的服务质量设置阈值。当下游节点的服务质量超过该阈值时,该下游节点提供服务的性能会大幅下降,此时上游节点会触发熔断。在经过设定的时间后,上游节点再对该下游节点进行调用。下游节点是否可被调用,取决于下游节点的服务质量是否超过阈值,导致服务调用的灵活性较低。
发明内容
本申请提供了一种服务调用方法、装置、设备及存储介质,可以解决相关技术中的服务调用的灵活性较低的问题。所述技术方案如下:
一方面,提供了一种服务调用方法,所述方法包括:
在数据集中获取第i个时间片之前的n个时间片的历史调用数据,所述历史调用数据包括服务调用节点调用服务提供节点的成功调用次数和/或失败调用次数,n为正整数,i为大于n的整数;
根据所述n个时间片的历史调用数据,确定所述第i个时间片中对所述服务提供节点的调用概率;
基于所述调用概率,在所述第i个时间片中对所述服务提供节点进行调用。
另一方面,提供了一种服务调用装置,所述装置包括:
获取模块,用于在数据集中获取第i个时间片之前的n个时间片的历史调用数据,所述历史调用数据包括服务调用节点调用服务提供节点的成功调用次数和/或失败调用次数,n为正整数,i为大于n的整数;
确定模块,用于根据所述n个时间片的历史调用数据,确定所述第i个时间片中对所述服务提供节点的调用概率;
调用模块,用于基于所述调用概率,在所述第i个时间片中对所述服务提供节点进行调用。
可选地,所述历史调用数据包括所述服务调用节点调用所述服务提供节点的成功调用次数以及失败调用次数;
所述确定模块,用于:
根据所述n个时间片的历史调用数据,计算所述服务提供节点在所述n个时间片中的失败调用率;
当所述失败调用率小于熔断触发比例T1时,确定所述调用概率为1;
当所述失败调用率大于所述熔断触发比例T1小于熔断触发比例T2时,根据所述失败调用率与所述调用概率的对应关系,确定所述调用概率;
当所述失败调用率大于所述熔断触发比例T2时,确定所述调用概率为0;
其中,0<T1<T2<1。
可选地,所述历史调用数据包括所述服务调用节点调用所述服务提供节点的失败调用次数;
所述确定模块,用于:
当所述失败调用次数小于熔断触发数量K1时,确定所述调用概率为1;
当所述失败调用次数大于所述熔断触发数量K1小于熔断触发数量K2时,根据所述失败调用次数与所述调用概率的对应关系,确定所述调用概率;
当所述失败调用次数大于所述熔断触发数量K2时,确定所述调用概率为0;
其中,K1<K2,K1和K2为正整数。
可选地,所述历史调用数据包括所述服务调用节点调用所述服务提供节点的成功调用次数以及失败调用次数;
所述确定模块,用于:
根据所述n个时间片的历史调用数据,计算所述服务提供节点在所述n个时间片中的失败调用率;
当所述失败调用率小于熔断触发比例T1或所述失败调用次数小于熔断触发数量K1时,确定所述调用概率为1;
当所述失败调用率大于所述熔断触发比例T1小于熔断触发比例T2且所述失败调用次数大于所述熔断触发数量K1小于熔断触发数量K2时,根据所述失败调用率与所述调用概率的对应关系,确定所述调用概率;
当所述失败调用率大于所述熔断触发比例T2或所述失败调用次数大于所述熔断触发数量K2时,确定所述调用概率为0;
其中,0<T1<T2<1,K1<K2,K1和K2为正整数。
可选地,所述确定模块,用于:
根据所述成功调用次数以及失败调用次数,计算所述服务提供节点在所述n个时间片中的失败调用率,所述失败调用率等于所述失败调用次数与所述成功调用次数以及所述失败调用次数之和的比值。
可选地,所述调用模块,用于:
当所述调用概率为1时,在所述第i个时间片中总是调用所述服务提供节点;
当所述调用概率大于0小于1时,在所述第i个时间片中根据随机数和所述调用概率之间的大小关系,确定是否调用所述服务提供节点;
当所述调用概率为0时,在所述第i个时间片中熔断所述服务提供节点。
可选地,所述调用模块,用于:
当所述调用概率大于0小于1时,在所述第i个时间片中存在调用需求的情况下生成随机数,所述随机数大于0且小于1;
当所述随机数小于所述调用概率时,调用所述服务提供节点;
当所述随机数大于所述调用概率时,不调用所述服务提供节点。
可选地,所述装置还包括:
更新模块,用于在所述第i个时间片的所述调用概率等于0时,不将所述第i个时间片的调用数据更新至所述数据集;
更新模块,还用于在所述第i个时间片的所述调用概率大于0时,将所述第i个时间片的调用数据更新至所述数据集;
所述获取模块,还用于令i=i+1,再次从所述数据集中获取第i个时间片之前的n个时间片的历史调用数据开始执行。
可选地,所述装置还包括:
建立模块,用于建立所述数据集对应的关联容器,所述关联容器中存储有可被所述服务调用节点调用的所述服务提供节点对应的结构体数组,所述结构体数组的长度为m,m为大于或等于i的整数,每个所述结构体数组用于存储一个时间片的历史调用数据。
又一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现上述方面所述的服务调用方法。
再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现上述方面所述的服务调用方法。
本申请提供的技术方案带来的有益效果至少包括:
在数据集中获取第i个时间片之前的n个时间片的历史调用数据,并根据该n个时间片的历史调用数据,确定第i个时间片中对服务提供节点的调用概率,之后基于该调用概率在第i个时间片中对服务提供节点进行调用。由于服务调用节点按照调用概率对服务提供节点进行调用,不只是直接调用或者熔断。本申请提升了服务调用的灵活性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的服务调用方法的实现流程示意图;
图2是本申请实施例提供的一种服务调用系统的结构示意图;
图3是本申请实施例提供的一种服务调用方法的流程示意图;
图4是本申请实施例提供的另一种服务调用方法的流程示意图;
图5是本申请实施例提供的关联容器的结构示意图;
图6是本申请实施例提供的一种确定调用概率的方法的流程示意图;
图7是本申请实施例提供的失败调用率与调用概率的函数图像;
图8是本申请实施例提供的另一种确定调用概率的方法的流程示意图;
图9是本申请实施例提供的失败调用次数与调用概率的函数图像;
图10是本申请实施例提供的又一种确定调用概率的方法的流程示意图;
图11是本申请实施例提供的服务提供节点的异常服务次数随时间变化的示意图;
图12是本申请实施例提供的服务提供节点的每秒响应次数随时间变化的示意图;
图13是本申请实施例提供的又一种服务调用方法的流程示意图;
图14是本申请实施例提供的一种服务调用装置的结构示意图;
图15是本申请实施例提供的另一种服务调用装置的结构示意图;
图16是本申请实施例提供的又一种服务调用装置的结构示意图;
图17是本申请实施例提供的一种服务器的结构示意图。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的服务调用方法的实现流程示意图。如图1所示,在步骤S1中,服务调用节点根据对服务提供节点的历史调用数据,确定对服务提供节点的调用概率。该历史调用数据用于反映在过去一段时间内服务提供节点的服务性能。在步骤S2中,服务调用节点基于该调用概率调用服务提供节点。在步骤S3中,服务调用节点根据本次调用的结果,更新对服务提供节点的历史调用数据。更新后的对服务提供节点的历史调用数据,会影响之后服务调用节点调用服务提供节点时,确定的调用概率。本申请实施例实现根据服务提供节点的性能变化,灵活调用服务提供节点。
图2是本申请实施例提供的一种服务调用系统的结构示意图,如图2所示,该服务调用系统中包括节点201a-201j,其中节点201a-201e可以是服务调用节点(统称为服务调用节点201)。图2中两个节点之间具有连接线,该连接线的一端具有连接线箭头,连接线箭头指向的节点表示该节点可以被连接线连接的另一个节点进行调用。
服务调用系统中的节点可以根据连接关系调用另一节点提供的服务和/或被另一节点调用向该另一节点提供服务。示例地,参照图2,节点201a与节点201d之间具有连接线,连接线箭头指向节点201d,即节点201a可以调用节点201d提供的服务。节点201d与节点201f之间具有连接线,连接线箭头指向节点201f,即节点201d可以调用节点201f提供的服务。节点201d即可以被节点201a调用向节点201a提供服务,节点201d也可以调用节点201f提供的服务。
服务调用系统通常通过节点间的调用实现对外提供服务。示例地,继续参照图2,实现服务a可以由节点201a调用节点201d提供的服务,再由节点201d调用节点201f提供的服务实现。实现服务b可以由节点201b调用节点201d提供的服务,再由节点201d调用节点201g提供的服务实现。图2中的服务调用系统中的各个节点以及各个节点间的调用关系仅用作示意,不作为对本申请实施例提供的服务调用系统的限制。
可选地,节点201a-201j中的任一节点可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心,或者是其它计算机设备等等,在此不做限定。节点之间可以通过有线网络或无线网络建立连接。
可选地,本申请实施例提供的服务调用系统可以是基于微服务架构的软件系统,也可以是基于分布式部署的软件系统等通过软件系统中的节点间的服务调用实现系统对外提供服务的软件系统。本申请实施例提供的服务调用系统可以是应用于游戏业务中的服务调用系统,也可以是应用于金融业务中的服务调用系统,还可以是应用于即时通讯业务中的服务调用系统。
图3是本申请实施例提供的一种服务调用方法的流程示意图。该方法可以用于如图2所示的服务调用系统中的任一服务调用节点201。如图3所示,该方法包括:
步骤301、在数据集中获取第i个时间片之前的n个时间片的历史调用数据。
本申请实施例中的“时间片”指根据设定的时间长度,将过去一段时间分为若干个时间片。可选地,可以针对每个时间片设定相同的时间长度,也可以设定不同的时间长度。即该若干个时间片的时间长度可以相同也可以不同。每一个时间片有起始时刻以及结束时刻。
示例地,第一个时间片的起始时刻为12:00:00:000(12时0分0秒0毫秒)结束时刻为12:00:01:000。每个时间片设定的时间长度均为1秒。最后一个时间片的起始时刻为12:00:05:000结束时刻为12:00:06:000,则时间片数量为6。在一个示例中,调用服务提供节点的时刻为12:00:03:005,该时刻为第4个时间片中的时刻。在另一个示例中,调用服务提供节点的时刻为12:00:04:015,该时刻为第5个时间片中的时刻。
第i个时间片为包括调用服务提供节点的时刻的时间片,第i个时间片之前的n个时间片包括第i个时间片之前的一个或多个时间片,n为正整数,i为大于n的整数。例如可以是第3个时间片之前最近的1个时间片。
历史调用数据包括:服务调用节点调用服务提供节点的成功调用次数和/或失败调用次数。服务调用节点调用服务提供节点,指服务调用节点调用服务提供节点提供的服务。在一种可能的实现方案中,历史调用数据也可以是失败调用率,还可以是成功调用率。该失败调用率是失败调用次数与总调用次数的比值,该成功调用率是成功调用次数与总调用次数的比值。
可选地,失败调用次数包括服务调用节点向服务提供节点发出调用指令但未收到返回数据的次数、服务调用节点向服务提供节点发出调用指令收到错误返回数据的次数、和/或、服务调用节点向服务提供节点发出调用指令但在设定的时间内未收到返回数据的次数。
步骤302、根据n个时间片的历史调用数据,确定第i个时间片中对服务提供节点的调用概率。
示例性的,调用概率大于等于0且小于等于1。
调用概率越大,即服务调用节点调用服务提供节点提供的服务的概率越大;调用概率越小,即服务调用节点调用服务提供节点提供的服务的概率越小。
步骤303、基于调用概率,在第i个时间片中对服务提供节点进行调用。
在第i个时间片中对服务提供节点进行调用,即在包括调用服务提供节点的时刻的第i个时间片中对服务提供节点进行调用。
1、当调用概率为1时,在第i个时间片中总是调用服务提供节点。
2、当调用概率大于0小于1时,可能调用服务提供节点,也可能不调用服务提供节点。例如可以生成一个随机数,该随机数大于0且小于1。当随机数小于调用概率时,调用服务提供节点。当随机数大于调用概率时,不调用服务提供节点。
3、当调用概率为0时,在第i个时间片中熔断服务提供节点。
综上所述,本申请实施例提供的服务调用方法,在数据集中获取第i个时间片之前的n个时间片的历史调用数据,并根据该n个时间片的历史调用数据,确定第i个时间片中对服务提供节点的调用概率,之后基于该调用概率在第i个时间片中对服务提供节点进行调用。由于服务调用节点按照调用概率对服务提供节点进行调用,不只是直接调用或者熔断。本申请实施例提升了服务调用的灵活性。
图4是本申请实施例提供的另一种服务调用方法的流程示意图。该方法可以用于如图2所示的服务调用系统中的任一服务调用节点201。如图4所示,该方法包括:
步骤401、确定数据集中包括调用时刻的第i个时间片。
该数据集中包括过去一段时间对应的若干个时间片以及每个时间片的历史调用数据。该数据集可以是数据库、数据表、队列等等各种存储结构。可选地,该数据集中还包括服务提供节点的标识。该标识用于指示被调用的服务提供节点对应的结构体数组。该标识可以是节点的媒体访问控制(Media Access Control,MAC)地址,也可以是节点的通用唯一识别码(universally unique identifier,UUID),还可以是其它可用于唯一标识节点的信息。
可选地,过去一段时间可以是过去的30秒、过去的40秒或过去的60秒。该调用时刻为服务调用节点调用服务提供节点的时刻。
可选地,可以在服务提供节点中建立数据集对应的关联容器。该关联容器中存储有可被服务调用节点调用的服务提供节点对应的结构体数组。结构体数组的长度为m,m为大于或等于i的整数,每个结构体数组用于存储一个时间片的历史调用数据。
示例地,图5是本申请实施例提供的关联容器的结构示意图。如图5所示。该关联容器中存储有节点201b、节点201c等节点的标识以及服务提供节点对应的结构体数组。节点201b中存储有服务质量统计数据。节点201c中存储有服务次数统计数据。结构体数组的长度m为30。结构体数组中有30个时间片。每个时间片中存储有该时间片的时间戳以及该时间片中的成功调用次数以及失败调用次数。该时间戳包括时间片的起始时刻以及结束时刻。确定的第i个时间片为第5个时间片,即确定数据集中的第5个时间片包括调用时刻。
步骤402、在数据集中获取第i个时间片之前的n个时间片的历史调用数据。
第i个时间片为包括调用服务提供节点的时刻的时间片,第i个时间片之前的n个时间片包括第i个时间片之前的一个或多个时间片,n为正整数,i为大于n的整数。可选地,第i个时间片之前的n个时间片包括第i个时间片之前最近的n个时间片,或者包括第i个时间片之前的指定的一个或多个时间片。n可以根据服务调用系统对服务调用的稳定性的要求以及服务调用系统对服务提供节点性能变化的敏感度确定。例如n越大,服务调用系统对服务提供节点性能变化的敏感度越低。
示例地,继续参照图5,获取第i个时间片之前的n个时间片的历史调用数据为获取第5个时间片之前的最近5个时间片的历史调用数据。
历史调用数据包括服务调用节点对服务提供节点提供的服务进行调用的成功调用次数和/或失败调用次数。
步骤403、根据n个时间片的历史调用数据,确定第i个时间片中对服务提供节点的调用概率。
在第一种可能实现方式中,历史调用数据包括服务调用节点对服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数。步骤403的实现过程如图6所示,包括以下步骤4031a和4032a:
在步骤4031a中,根据n个时间片的历史调用数据,计算服务提供节点在n个时间片中的失败调用率。
n个时间片的历史调用数据,即在n个时间片中服务调用节点对服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数。
根据历史调用数据中服务调用节点对服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数,计算服务提供节点在n个时间片中的失败调用率。该失败调用率等于失败调用次数与成功调用次数以及失败调用次数之和的比值。示例地,成功调用次数为8次,失败调用次数为2次,则失败调用率为20%。
在步骤4032a中,根据失败调用率与熔断触发比例的大小关系,确定调用概率。
可选地,熔断触发比例为T1和T2。其中,0<T1<T2<1。该熔断触发比例的数值以及数量可以根据实际情况进行设置。可以针对服务调用系统中的不同的服务提供节点设置不同的熔断触发比例,也可以针对服务调用系统中的全部服务调用节点设置相同的熔断触发比例。熔断触发比例可以存储在服务调用节点中,定时进行更新。也可以在服务调用节点调用服务提供节点时,获取熔断触发比例。
1、当失败调用率小于熔断触发比例T1时,确定调用概率为1。
2、当失败调用率大于熔断触发比例T1小于熔断触发比例T2时,根据失败调用率与调用概率的对应关系,确定调用概率。
失败调用率与调用概率负相关。可选地,失败调用率与调用概率的对应关系可以是函数关系。该函数关系可以针对节点提供的服务的特点进行设置。示例地,图7是本申请实施例提供的失败调用率与调用概率的函数图像。如图7所示,函数f1、f2和f3为三种失败调用率与调用概率的函数关系。在失败调用率较低时,在函数f1、函数f2和函数f3中失败调用率对应的调用概率为100%。在函数f1中,调用概率随失败调用率线性变化,且变化速率最慢。在函数f2中,调用概率随失败调用率线性变化,且变化速率快于函数f1。在函数f3中,调用概率随失败调用率非线性变化,且变化速率最快。
3、当失败调用率大于熔断触发比例T2时,确定调用概率为0。
在第二种可能实现方式中,历史调用数据包括服务调用节点对服务提供节点提供的服务进行调用的失败调用次数。步骤403的实现过程如图8所示,包括以下步骤4031b:
在步骤4031b中,根据失败调用次数与熔断触发数量的大小关系,确定调用概率。
n个时间片的历史调用数据,即在n个时间片中服务调用节点对服务提供节点提供的服务进行调用的失败调用次数。
可选地,熔断触发数量为K1和K2。其中,K1<K2,K1和K2为正整数。该熔断触发数量的数值以及数量可以根据实际情况进行设置。可以针对服务调用系统中的不同的服务提供节点设置不同的熔断触发数量,也可以针对服务调用系统中的全部服务调用节点设置相同的熔断触发数量。熔断触发数量可以存储在服务调用节点中,定时进行更新。也可以在服务调用节点调用服务提供节点时,获取熔断触发数量。
1、当失败调用次数小于熔断触发数量K1时,确定调用概率为1。
2、当失败调用次数大于熔断触发数量K1小于熔断触发数量K2时,根据失败调用次数与调用概率的对应关系,确定调用概率。
失败调用次数与调用概率负相关。可选地,失败调用次数与调用概率的对应关系可以是函数关系。该函数关系可以针对不同服务的特点进行设置。示例地,图9是本申请实施例提供的失败调用次数与调用概率的函数图像。如图9所示,函数f1、f2和f3为三种失败调用次数与调用概率的函数关系。在失败调用次数较少时,在函数f1、函数f2和函数f3中失败调用次数对应的调用概率为100%。在函数f1中,调用概率随失败调用次数线性变化,且变化速率最慢。在函数f2中,调用概率随失败调用次数线性变化,且变化速率快于函数f1。在函数f3中,调用概率随失败调用次数非线性变化,且变化速率最快。
3、当失败调用次数大于熔断触发数量K2时,确定调用概率为0。
在第三种可能实现方式中,历史调用数据包括服务调用节点对服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数。步骤403的实现过程如图10所示,包括以下步骤4031c和4032c:
在步骤4031c中,根据n个时间片的历史调用数据,计算服务提供节点在n个时间片中的失败调用率。
n个时间片的历史调用数据,即在n个时间片中服务调用节点对服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数。
根据历史调用数据中服务调用节点对服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数,计算服务提供节点在n个时间片中的失败调用率。该失败调用率等于失败调用次数与成功调用次数以及失败调用次数之和的比值。
在步骤4032c中,根据失败调用率与熔断触发比例的大小关系以及失败调用次数与熔断触发数量的大小关系,确定调用概率。
可选地,熔断触发比例为T1和T2,熔断触发数量为K1和K2。其中,0<T1<T2<1,K1<K2,K1和K2为正整数。该熔断触发比例以及熔断触发数量的数值以及数量可以根据实际情况进行设置。可以针对服务调用系统中的不同的服务提供节点设置不同的熔断触发比例以及熔断触发数量,也可以针对服务调用系统中的全部服务调用节点设置相同的熔断触发比例以及熔断触发数量。熔断触发比例以及熔断触发数量可以存储在服务调用节点中,定时进行更新。也可以在服务调用节点调用服务提供节点时,获取熔断触发比例以及熔断触发数量。
1、当失败调用率小于熔断触发比例T1或失败调用次数小于熔断触发数量K1时,确定调用概率为1。
2、当失败调用率大于熔断触发比例T1小于熔断触发比例T2且失败调用次数大于熔断触发数量K1小于熔断触发数量K2时,根据失败调用率与调用概率的对应关系,确定调用概率。
失败调用率与调用概率负相关。可选地,失败调用率与调用概率的对应关系可以是函数关系。该函数关系可以针对不同服务的特点进行设置。示例地,失败调用率与调用概率的函数图像可以参照图7。
3、当失败调用率大于熔断触发比例T2或失败调用次数大于熔断触发数量K2时,确定调用概率为0。
步骤404、基于调用概率,在第i个时间片中对服务提供节点进行调用。
1、当调用概率为1时,在第i个时间片中总是调用服务提供节点。
在第i个时间片中总是调用服务提供节点,即在第i个时间片包括的任一服务调用时刻,调用服务提供节点提供的服务。
2、当调用概率大于0小于1时,在第i个时间片中存在调用需求的情况下生成随机数,该随机数大于0且小于1。在第i个时间片中根据随机数和调用概率之间的大小关系,确定是否调用服务提供节点。
当随机数小于调用概率时,调用服务提供节点。
当随机数大于调用概率时,不调用服务提供节点。
不调用服务提供节点,则视为本次调用结果为失败。
示例地,调用概率为60%,在第i个时间片中存在调用需求的情况下生成随机数40%。随机数小于调用概率,则调用服务提供节点。调用概率为60%,在第i个时间片中存在调用需求的情况下生成随机数80%。随机数大于调用概率,则不调用服务提供节点。
3、当调用概率为0时,在第i个时间片中熔断服务提供节点。
示例地,图11是本申请实施例提供的服务提供节点的异常服务次数随时间变化的示意图。如图11所示,在t1时间,服务提供节点的异常服务次数最多,服务调用节点确定的对服务提供节点的调用概率最低。之后在t1至t2时间内,服务调用节点未熔断对服务提供节点的调用,按照调用概率继续调用服务提供节点。服务提供节点的服务异常次数逐渐减少,服务调用节点的调用概率逐渐增大。
示例地,图12是本申请实施例提供的服务提供节点的每秒响应次数随时间变化的示意图。如图12所示,当服务提供节点的每秒响应次数为0时,服务调用节点熔断对服务提供节点的调用。之后随着服务提供节点的每秒响应次数逐渐增加,服务调用节点按照调用概率继续调用服务提供节点。使得服务调用节点的熔断与恢复调用都是弹性的,不只是直接熔断。
步骤405、在第i个时间片的调用概率大于0时,将第i个时间片的调用数据更新至数据集。
将第i个时间片的调用数据更新至数据集,即将在第i个时间片中对服务调用节点的调用成功次数以及调用失败次数更新至数据集。可选地,可以在第i个时间片中的任一调用时刻调用完成后,将该次调用结果更新至数据集。也可以在第i个时间片中的全部调用时刻都调用完成后,再将全部调用结果更新至数据集。
可选地,在第i个时间片的调用概率等于0时,不将第i个时间片的调用数据更新至所述数据集。示例地,若第i个时间片的调用概率为0,则删除第i个时间片的调用数据。
步骤406、令i=i+1,再次从数据集中获取第i个时间片之前的n个时间片的历史调用数据开始执行。
令i=i+1,即第i+1个时间片包括调用服务提供节点的时刻。第i+1个时间片为第i个时间片的后一个时间片。
在第i个时间片中,再次从数据集中获取第i个时间片之前的n个时间片的历史调用数据开始执行本申请实施例提供的服务调用方法。
综上所述,本申请实施例提供的服务调用方法,确定数据集中包括调用时刻的第i个时间片。在数据集中获取第i个时间片之前的n个时间片的历史调用数据,并根据该n个时间片的历史调用数据,确定第i个时间片中对服务提供节点的调用概率。之后基于该调用概率在第i个时间片中对服务提供节点进行调用。由于服务调用节点按照调用概率对服务提供节点进行调用,不只是直接调用或者熔断。本申请实施例提升了服务调用的灵活性。
可选地,根据失败调用率与熔断触发比例的大小关系,确定调用概率。熔断触发比例用于判断服务提供节点性能降低的程度。而失败调用率越高,表示服务提供节点的性能越差。因此通过比较失败调用率与熔断触发比例的大小关系确定的调用概率可以准确反映服务提供节点的性能,该调用概率与服务提供节点的性能正相关。
可选地,根据失败调用次数与熔断触发数量的大小关系,确定调用概率。熔断触发数量用于判断服务提供节点性能降低的程度。而失败调用次数越多,表示服务提供节点的性能越差。因此通过比较失败调用次数与熔断触发数量的大小关系确定的调用概率能够反映服务提供节点的性能,该调用概率与服务提供节点的性能正相关。
可选地,根据失败调用率与熔断触发比例的大小关系以及失败调用次数与熔断触发数量的大小关系,确定调用概率。通过比较失败调用次数与熔断触发数量的大小关系以及比较失败调用次数与熔断触发数量的大小关系共同确定的调用概率的准确性更高。
另外,根据获取到的不同的i个时间片之前的n个时间片,可以获取不同的历史调用数据,从而可以灵活调整服务调用节点确定的调用概率。随着时间推移,历史调用数据也会发生变化,会随着服务提供节点性能的提升逐步提升对服务提供节点的调用概率。使得服务调用节点的熔断与恢复调用都是弹性的,不只是直接熔断,减少服务调用时的资源浪费。
图13是本申请实施例提供的又一种服务调用方法的流程示意图。该方法可以用于如图2所示的服务调用系统中的任一服务调用节点201。如图13所示,该方法包括:
步骤1301、在关联容器中根据服务提供节点的标识,获取包括第一调用时刻的第i个时间片之前的最近n个时间片中的对该服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数。
关联容器中的时间片的时间长度相同。该时间长度等于目标时长。
关联容器中存储有可被服务调用节点调用的服务提供节点的标识以及服务提供节点对应的结构体数组。示例地,关联容器的结构可以参照图5。可选地,关联容器中还存储有服务调用节点的互联网协议(Internet Protocol,IP)地址。关联容器中还可以存储有服务提供节点被不同的服务调用节点调用的成功调用次数以及失败调用次数。关联容器中还可以分别存储有读取场景下的对服务提供节点调用的成功调用次数以及失败调用次数,和写入场景下的对服务提供节点调用的成功调用次数以及失败调用次数。
第一调用时刻为进行服务调用的时刻。
步骤1302、获取熔断触发比例T1、T2以及熔断触发数量K1、K2。
其中,0<T1<T2<1,K1<K2,K1和K2为正整数。可选地,该熔断触发比例以及熔断触发数量的数值可以根据实际情况进行设置。可以针对服务调用系统中的不同的服务提供节点设置不同的熔断触发比例以及熔断触发数量,也可以针对服务调用系统中的全部服务调用节点设置相同的熔断触发比例以及熔断触发数量。熔断触发比例以及熔断触发数量可以存储在服务调用节点中,定时进行更新。也可以在服务调用节点调用服务提供节点时,获取熔断触发比例以及熔断触发数量。
步骤1303、根据最近n个时间片中的对服务提供节点提供的服务进行调用的失败调用率以及失败调用次数和熔断触发比例T1、T2以及熔断触发数量K1、K2的大小关系,确定第一调用时刻对服务提供节点的调用概率。
1、当失败调用率小于熔断触发比例T1或失败调用次数小于熔断触发数量K1时,确定调用概率为1。
2、当失败调用率大于熔断触发比例T1小于熔断触发比例T2且失败调用次数大于熔断触发数量K1小于熔断触发数量K2时,根据失败调用率与调用概率的对应关系,确定调用概率。
失败调用率与调用概率负相关。可选地,失败调用率与调用概率的对应关系可以是函数关系。该函数关系可以根据实际情况进行设置。示例地,继续参照图7,函数f1、f2和f3为三种失败调用率与调用概率的函数关系。
3、当失败调用率大于熔断触发比例T2或失败调用次数大于熔断触发数量K2时,确定调用概率为0。
步骤1304、基于调用概率,在第一调用时刻对服务提供节点进行调用。
1、当调用概率为1时,在第一调用时刻调用服务提供节点。
2、当调用概率大于0小于1时,在第一调用时刻生成随机数,该随机数大于0且小于1。在第一调用时刻根据随机数和调用概率之间的大小关系,确定是否调用服务提供节点。
当随机数小于调用概率时,调用服务提供节点。
当随机数大于调用概率时,不调用服务提供节点。
3、当调用概率为0时,在第一调用时刻熔断服务提供节点。
步骤1305、在第一调用时刻的调用概率大于0时,将第一调用时刻的调用数据更新至关联容器。
将第一调用时刻的调用数据更新至关联容器,即将第一调用时刻对服务调用节点的调用成功次数以及调用失败次数更新至关联容器。
可选地,在第一调用时刻的调用概率等于0时,不将第一调用时刻的调用数据更新至关联容器。
步骤1306、令i=i+1,再次从关联容器中获取第i个时间片之前的最近n个时间片中的对服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数开始执行。
其中,第i+1个时间片包括第二调用时刻。第i+1个时间片为第i个时间片的后一个时间片。第一调用时刻在第二调用时刻之前,且第一调用时刻与第二调用时刻之间的时间差大于目标时长,小于目标时长的两倍。
在第二调用时刻,再次从数据集中获取第i个时间片之前的最近n个时间片中的对服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数开始执行本申请实施例提供的服务调用方法。
需要说明的是,本申请实施例提供的服务调用方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本申请实施例提供的服务调用方法,在关联容器中根据服务提供节点的标识,获取包括第一调用时刻的第i个时间片之前的最近n个时间片中的对该服务提供节点提供的服务进行调用的成功调用次数以及失败调用次数,并根据该n个时间片的历史调用数据,确定第一调用时刻对服务提供节点的调用概率。之后基于该调用概率在第一调用时刻对服务提供节点进行调用。由于服务调用节点按照调用概率对服务提供节点进行调用,不只是直接调用或者熔断。本申请实施例提升了服务调用的灵活性。
另外,根据获取到的不同的i个时间片之前的最近n个时间片,可以获取不同的历史调用数据,从而可以灵活调整服务调用节点确定的调用概率。随着时间推移,历史调用数据也会发生变化,会随着服务提供节点性能的提升逐步提升对服务提供节点的调用概率。使得服务调用节点的熔断与恢复调用都是弹性的,不只是直接熔断,减少服务调用时的资源浪费。
图14是本申请实施例提供的一种服务调用装置的结构示意图。该装置可以用于如图2所示的服务调用系统中的任一服务调用节点201。如图14所示,该装置140包括:
获取模块1401,用于在数据集中获取第i个时间片之前的n个时间片的历史调用数据,历史调用数据包括服务调用节点调用服务提供节点的成功调用次数和/或失败调用次数,n为正整数,i为大于n的整数。
确定模块1402,用于根据n个时间片的历史调用数据,确定第i个时间片中对服务提供节点的调用概率。
调用模块1403,用于基于调用概率,在第i个时间片中对服务提供节点进行调用。
综上所述,本申请实施例提供的服务调用装置,在数据集中通过获取模块获取第i个时间片之前的n个时间片的历史调用数据,并根据该n个时间片的历史调用数据,通过确定模块确定第i个时间片中对服务提供节点的调用概率,之后通过调用模块基于该调用概率在第i个时间片中对服务提供节点进行调用。由于服务调用节点按照调用概率对服务提供节点进行调用,不只是直接调用或者熔断。本申请实施例提升了服务调用的灵活性。
可选地,历史调用数据包括服务调用节点调用服务提供节点的成功调用次数以及失败调用次数。确定模块1402,用于:
根据n个时间片的历史调用数据,计算服务提供节点在n个时间片中的失败调用率。
当失败调用率小于熔断触发比例T1时,确定调用概率为1。
当失败调用率大于熔断触发比例T1小于熔断触发比例T2时,根据失败调用率与调用概率的对应关系,确定调用概率。
当失败调用率大于熔断触发比例T2时,确定调用概率为0。
其中,0<T1<T2<1。
可选地,历史调用数据包括服务调用节点调用服务提供节点的失败调用次数。确定模块1402,用于:
当失败调用次数小于熔断触发数量K1时,确定调用概率为1。
当失败调用次数大于熔断触发数量K1小于熔断触发数量K2时,根据失败调用次数与调用概率的对应关系,确定调用概率。
当失败调用次数大于熔断触发数量K2时,确定调用概率为0。
其中,K1<K2,K1和K2为正整数。
可选地,历史调用数据包括服务调用节点调用服务提供节点的成功调用次数以及失败调用次数。确定模块1402,用于:
根据n个时间片的历史调用数据,计算服务提供节点在n个时间片中的失败调用率。
当失败调用率小于熔断触发比例T1或失败调用次数小于熔断触发数量K1时,确定调用概率为1。
当失败调用率大于熔断触发比例T1小于熔断触发比例T2且失败调用次数大于熔断触发数量K1小于熔断触发数量K2时,根据失败调用率与调用概率的对应关系,确定调用概率。
当失败调用率大于熔断触发比例T2或失败调用次数大于熔断触发数量K2时,确定调用概率为0。
其中,0<T1<T2<1,K1<K2,K1和K2为正整数。
可选地,确定模块1402,用于:
根据成功调用次数以及失败调用次数,计算服务提供节点在n个时间片中的失败调用率,失败调用率等于失败调用次数与成功调用次数以及失败调用次数之和的比值。
可选地,调用模块1403,用于:
当调用概率为1时,在第i个时间片中总是调用服务提供节点。
当调用概率大于0小于1时,在第i个时间片中根据随机数和调用概率之间的大小关系,确定是否调用服务提供节点。
当调用概率为0时,在第i个时间片中熔断服务提供节点。
可选地,调用模块1403,用于:
当调用概率大于0小于1时,在第i个时间片中存在调用需求的情况下生成随机数,随机数大于0且小于1。
当随机数小于调用概率时,调用服务提供节点。
当随机数大于调用概率时,不调用服务提供节点。
可选地,如图15所示,装置140还包括:
更新模块1404,用于在第i个时间片的调用概率等于0时,不将第i个时间片的调用数据更新至数据集;
更新模块1404,还用于在第i个时间片的调用概率大于0时,将第i个时间片的调用数据更新至数据集;
获取模块1401,还用于令i=i+1,再次从数据集中获取第i个时间片之前的n个时间片的历史调用数据开始执行。
可选地,如图16所示,装置140还包括:
建立模块1405,用于建立数据集对应的关联容器,关联容器中存储有可被服务调用节点调用的服务提供节点对应的结构体数组,结构体数组的长度为m,m为大于或等于i的整数,每个结构体数组用于存储一个时间片的历史调用数据。
综上所述,本申请实施例提供的服务调用装置,在数据集中通过获取模块获取第i个时间片之前的n个时间片的历史调用数据,并根据该n个时间片的历史调用数据,通过确定模块确定第i个时间片中对服务提供节点的调用概率,之后通过调用模块基于该调用概率在第i个时间片中对服务提供节点进行调用。由于服务调用节点按照调用概率对服务提供节点进行调用,不只是直接调用或者熔断。本申请实施例提升了服务调用的灵活性。
可选地,根据失败调用率与熔断触发比例的大小关系,通过确定模块确定调用概率。熔断触发比例用于判断服务提供节点性能降低的程度。而失败调用率越高,表示服务提供节点的性能越差。因此通过比较失败调用率与熔断触发比例的大小关系确定的调用概率可以准确反映服务提供节点的性能,该调用概率与服务提供节点的性能正相关。
可选地,根据失败调用次数与熔断触发数量的大小关系,通过确定模块确定调用概率。熔断触发数量用于判断服务提供节点性能降低的程度。而失败调用次数越多,表示服务提供节点的性能越差。因此通过比较失败调用次数与熔断触发数量的大小关系确定的调用概率能够反映服务提供节点的性能,该调用概率与服务提供节点的性能正相关。
可选地,根据失败调用率与熔断触发比例的大小关系以及失败调用次数与熔断触发数量的大小关系,通过确定模块确定调用概率。通过比较失败调用次数与熔断触发数量的大小关系以及比较失败调用次数与熔断触发数量的大小关系共同确定的调用概率的准确性更高。
另外,根据获取到的不同的i个时间片之前的n个时间片,可以通过获取模块获取不同的历史调用数据,从而可以灵活调整服务调用节点确定的调用概率。随着时间推移,历史调用数据也会发生变化,会随着服务提供节点性能的提升逐步提升对服务提供节点的调用概率。使得服务调用节点的熔断与恢复调用都是弹性的,不只是直接熔断,减少服务调用时的资源浪费。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请的实施例还提供了一种计算机设备,该计算机设备包括:处理器和存储器,该装置存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的服务调用方法。
该计算机设备可以是服务器。示例地,图17是本申请实施例提供的一种服务器的结构示意图。
服务器1700包括中央处理单元(CPU)1701、包括随机存取存储器(RAM)1702和只读存储器(ROM)1703的系统存储器1704,以及连接系统存储器1704和中央处理单元1701的系统总线1705。服务器1700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1706,和用于存储操作系统1713、应用程序1714和其他程序模块1715的大容量存储设备1707。
基本输入/输出系统1706包括有用于显示信息的显示器1708和用于用户输入信息的诸如鼠标、键盘之类的输入设备1709。其中显示器1708和输入设备1709都通过连接到系统总线1705的输入输出控制器1710连接到中央处理单元1701。基本输入/输出系统1706还可以包括输入输出控制器1710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1710还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1707通过连接到系统总线1705的大容量存储控制器(未示出)连接到中央处理单元1701。大容量存储设备1707及其相关联的计算机可读介质为服务器1700提供非易失性存储。也就是说,大容量存储设备1707可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1704和大容量存储设备1707可以统称为存储器。
根据本申请的各种实施例,服务器1700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1700可以通过连接在系统总线1705上的网络接口单元1711连接到网络1712,或者说,也可以使用网络接口单元1711来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
本申请实施例中还提供了一种计算机存储介质,该存储介质中可以存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的服务调用方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同切换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种服务调用方法,其特征在于,所述方法包括:
在数据集中获取第i个时间片之前的n个时间片的历史调用数据,所述历史调用数据包括服务调用节点调用服务提供节点的成功调用次数和/或失败调用次数,n为正整数,i为大于n的整数;
根据所述n个时间片的历史调用数据,确定所述第i个时间片中对所述服务提供节点的调用概率;
基于所述调用概率,在所述第i个时间片中对所述服务提供节点进行调用。
2.根据权利要求1所述的方法,其特征在于,所述历史调用数据包括所述服务调用节点调用所述服务提供节点的成功调用次数以及失败调用次数;
所述根据所述n个时间片的历史调用数据,确定所述第i个时间片中对所述服务提供节点的调用概率,包括:
根据所述n个时间片的历史调用数据,计算所述服务提供节点在所述n个时间片中的失败调用率;
当所述失败调用率小于熔断触发比例T1时,确定所述调用概率为1;
当所述失败调用率大于所述熔断触发比例T1小于熔断触发比例T2时,根据所述失败调用率与所述调用概率的对应关系,确定所述调用概率;
当所述失败调用率大于所述熔断触发比例T2时,确定所述调用概率为0;
其中,0<T1<T2<1。
3.根据权利要求1所述的方法,其特征在于,所述历史调用数据包括所述服务调用节点调用所述服务提供节点的失败调用次数;
所述根据所述n个时间片的历史调用数据,确定所述第i个时间片中对所述服务提供节点的调用概率,包括:
当所述失败调用次数小于熔断触发数量K1时,确定所述调用概率为1;
当所述失败调用次数大于所述熔断触发数量K1小于熔断触发数量K2时,根据所述失败调用次数与所述调用概率的对应关系,确定所述调用概率;
当所述失败调用次数大于所述熔断触发数量K2时,确定所述调用概率为0;
其中,K1<K2,K1和K2为正整数。
4.根据权利要求1所述的方法,其特征在于,所述历史调用数据包括所述服务调用节点调用所述服务提供节点的成功调用次数以及失败调用次数;
所述根据所述n个时间片的历史调用数据,确定所述第i个时间片中对所述服务提供节点的调用概率,包括:
根据所述n个时间片的历史调用数据,计算所述服务提供节点在所述n个时间片中的失败调用率;
当所述失败调用率小于熔断触发比例T1或所述失败调用次数小于熔断触发数量K1时,确定所述调用概率为1;
当所述失败调用率大于所述熔断触发比例T1小于熔断触发比例T2且所述失败调用次数大于所述熔断触发数量K1小于熔断触发数量K2时,根据所述失败调用率与所述调用概率的对应关系,确定所述调用概率;
当所述失败调用率大于所述熔断触发比例T2或所述失败调用次数大于所述熔断触发数量K2时,确定所述调用概率为0;
其中,0<T1<T2<1,K1<K2,K1和K2为正整数。
5.根据权利要求1至4任一所述的方法,其特征在于,所述基于所述调用概率,在所述第i个时间片中对所述服务提供节点进行调用,包括:
当所述调用概率为1时,在所述第i个时间片中总是调用所述服务提供节点;
当所述调用概率大于0小于1时,在所述第i个时间片中根据随机数和所述调用概率之间的大小关系,确定是否调用所述服务提供节点;
当所述调用概率为0时,在所述第i个时间片中熔断所述服务提供节点。
6.根据权利要求5所述的方法,其特征在于,所述当所述调用概率大于0小于1时,在所述第i个时间片中根据随机数和所述调用概率之间的大小关系,确定是否调用所述服务提供节点,包括:
当所述调用概率大于0小于1时,在所述第i个时间片中存在调用需求的情况下生成随机数,所述随机数大于0且小于1;
当所述随机数小于所述调用概率时,调用所述服务提供节点;
当所述随机数大于所述调用概率时,不调用所述服务提供节点。
7.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
在所述第i个时间片的所述调用概率等于0时,不将所述第i个时间片的调用数据更新至所述数据集;
在所述第i个时间片的所述调用概率大于0时,将所述第i个时间片的调用数据更新至所述数据集;
令i=i+1,再次从所述数据集中获取第i个时间片之前的n个时间片的历史调用数据开始执行。
8.一种服务调用装置,其特征在于,所述装置包括:
获取模块,用于在数据集中获取第i个时间片之前的n个时间片的历史调用数据,所述历史调用数据包括服务调用节点调用服务提供节点的成功调用次数和/或失败调用次数,n为正整数,i为大于n的整数;
确定模块,用于根据所述n个时间片的历史调用数据,确定所述第i个时间片中对所述服务提供节点的调用概率;
调用模块,用于基于所述调用概率,在所述第i个时间片中对所述服务提供节点进行调用。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现权利要求1至7任一所述的服务调用方法。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现权利要求1至7任一所述的服务调用方法。
CN202010524232.2A 2020-06-10 2020-06-10 服务调用方法、装置、设备及存储介质 Active CN113783908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010524232.2A CN113783908B (zh) 2020-06-10 2020-06-10 服务调用方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010524232.2A CN113783908B (zh) 2020-06-10 2020-06-10 服务调用方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113783908A true CN113783908A (zh) 2021-12-10
CN113783908B CN113783908B (zh) 2023-06-27

Family

ID=78834742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010524232.2A Active CN113783908B (zh) 2020-06-10 2020-06-10 服务调用方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113783908B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1586217B1 (en) * 2003-01-21 2007-01-03 Research In Motion Limited Method and apparatus to enhance the probability of successful emergency call completion in a mobile station
CN101222362A (zh) * 2008-01-08 2008-07-16 腾讯科技(深圳)有限公司 一种服务调度方法、装置和服务调度系统
CN109040190A (zh) * 2018-07-02 2018-12-18 咪咕文化科技有限公司 一种调度方法、装置及计算机可读存储介质
CN109586951A (zh) * 2018-11-07 2019-04-05 北京达佳互联信息技术有限公司 实施故障转移的方法、装置、电子设备及可读存储介质
CN109766210A (zh) * 2019-01-17 2019-05-17 多点生活(成都)科技有限公司 服务熔断控制方法、服务熔断控制装置和服务器集群
CN109936613A (zh) * 2017-12-19 2019-06-25 北京京东尚科信息技术有限公司 应用于服务器的容灾方法和装置
EP3547233A1 (en) * 2018-03-29 2019-10-02 Johnson Controls Technology Company Building energy optimization system with market program (cmp) planning
CN111031000A (zh) * 2019-11-18 2020-04-17 腾讯科技(深圳)有限公司 一种业务风控系统的处理方法、装置、系统及存储介质
CN111949421A (zh) * 2020-08-12 2020-11-17 北京奇艺世纪科技有限公司 Sdk调用方法、装置、电子设备和计算机可读存储介质
CN112131036A (zh) * 2020-10-09 2020-12-25 腾讯科技(深圳)有限公司 一种过载保护方法、装置、设备及计算机可读存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1586217B1 (en) * 2003-01-21 2007-01-03 Research In Motion Limited Method and apparatus to enhance the probability of successful emergency call completion in a mobile station
CN101222362A (zh) * 2008-01-08 2008-07-16 腾讯科技(深圳)有限公司 一种服务调度方法、装置和服务调度系统
CN109936613A (zh) * 2017-12-19 2019-06-25 北京京东尚科信息技术有限公司 应用于服务器的容灾方法和装置
EP3547233A1 (en) * 2018-03-29 2019-10-02 Johnson Controls Technology Company Building energy optimization system with market program (cmp) planning
CN109040190A (zh) * 2018-07-02 2018-12-18 咪咕文化科技有限公司 一种调度方法、装置及计算机可读存储介质
CN109586951A (zh) * 2018-11-07 2019-04-05 北京达佳互联信息技术有限公司 实施故障转移的方法、装置、电子设备及可读存储介质
CN109766210A (zh) * 2019-01-17 2019-05-17 多点生活(成都)科技有限公司 服务熔断控制方法、服务熔断控制装置和服务器集群
CN111031000A (zh) * 2019-11-18 2020-04-17 腾讯科技(深圳)有限公司 一种业务风控系统的处理方法、装置、系统及存储介质
CN111949421A (zh) * 2020-08-12 2020-11-17 北京奇艺世纪科技有限公司 Sdk调用方法、装置、电子设备和计算机可读存储介质
CN112131036A (zh) * 2020-10-09 2020-12-25 腾讯科技(深圳)有限公司 一种过载保护方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN113783908B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN108376118B (zh) 服务发布系统、方法、设备及存储介质
US20160036665A1 (en) Data verification based upgrades in time series system
US11263000B2 (en) Upgrading an execution environment for event-driven functions
CN110737548A (zh) 数据请求方法和服务器
US11822961B2 (en) Method and apparatus for data processing, server and storage medium
CN113946427A (zh) 用于多操作系统的任务处理方法、处理器及存储介质
CN107426012B (zh) 一种基于超融合架构的故障恢复方法及其装置
CN108241616B (zh) 消息推送方法和装置
CN113783908B (zh) 服务调用方法、装置、设备及存储介质
CN109710285A (zh) 一种设备升级方法及系统
CN115037653A (zh) 业务流量监控方法、装置、电子设备和存储介质
CN111884932B (zh) 一种链路确定方法、装置、设备和计算机可读存储介质
CN113010330A (zh) 一种微服务请求重试的方法及终端
CN111698266A (zh) 服务节点调用方法、装置、设备及可读存储介质
CN110716972A (zh) 高频率调用外部接口出错的处理方法和装置
CN112995301B (zh) 应用于分布式系统的数据处理方法和装置
CN112769824B (zh) 一种信息传输状态更新方法、终端、装置及存储介质
KR20190054554A (ko) 웹 모니터링 시스템 및 이를 이용한 응답시간 분포 정보 생성 방법
CN113992516B (zh) 物联网设备的固件更新方法、装置及物联网
CN111639089B (zh) 事务处理方法、装置、电子设备和计算机可读存储介质
CN114979153B (zh) 负载均衡方法、计算机设备及存储装置
CN115086173A (zh) 网络升级过程中的可靠性保障方法和装置
CN116170437A (zh) 一种链路跟踪方法及系统
CN110046192A (zh) 请求信息的序号生成系统和方法
CN115801889A (zh) 通信资源管理系统和方法、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant