CN115145756A - 熔断方法、装置、设备及存储介质 - Google Patents
熔断方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115145756A CN115145756A CN202210671451.2A CN202210671451A CN115145756A CN 115145756 A CN115145756 A CN 115145756A CN 202210671451 A CN202210671451 A CN 202210671451A CN 115145756 A CN115145756 A CN 115145756A
- Authority
- CN
- China
- Prior art keywords
- fusing
- calling
- call
- request
- service node
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及分布式微服务领域,公开了一种熔断方法、装置、设备及存储介质,用于减少微服务之间的调用错误。熔断方法包括:获取调用请求,其中,所述调用请求为第一服务节点调用第二服务节点时生成的指令;将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断;将所述调用请求对应的模拟数据发送至所述第一服务节点。
Description
技术领域
本发明涉及分布式微服务领域,尤其涉及一种熔断方法、装置、设备及存储介质。
背景技术
现代的分布式微服务系统架构越来越多,开源分布式服务框架Dubbo、分布式服务框架云Spring Cloud等成熟的框架更加推动了微服务的发展。微服务是一种服务间松耦合的、每个服务之间高度自治并且使用轻量级协议进行通信的可持续集成部署的分布式架构体系。
现代的分布式微服务系统架构众多,在微服务之间的调用也越来越多,在微服务之间的频繁调用中频繁出现调用错误。
发明内容
本发明提供了一种熔断方法、装置、设备及存储介质,用于减少微服务之间的调用错误。
本发明第一方面提供了一种熔断方法,包括:获取调用请求,其中,所述调用请求为第一服务节点调用第二服务节点时生成的指令;将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断;将所述调用请求对应的模拟数据发送至所述第一服务节点。
可选的,在本发明第一方面的第一种实现方式中,所述将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则,包括:获取所述调用请求的关键字;将所述关键字与预置的熔断规则集进行匹配,其中,所述熔断规则集包括多个预置关键字,每个预置关键字对应一种熔断规则;若所述关键字和所述预置的熔断规则集的目标预置关键字匹配,则将所述目标预置关键字对应的熔断规则确定为所述调用请求的目标熔断规则。
可选的,在本发明第一方面的第二种实现方式中,所述当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断,包括:当所述调用请求对应的执行调用过程产生调用错误时,获取对应的调用错误时长和调用错误次数;根据所述调用错误时长和所述调用错误次数,得到调用错误结果;若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断。
可选的,在本发明第一方面的第三种实现方式中,所述将所述调用请求对应的模拟数据发送至所述第一服务节点,包括:获取所述调用请求的数据标识;将所述数据标识和预置的模拟数据集进行匹配,其中,所述模拟数据集包括多个预置数据标识,每个预置数据标识对应一笔模拟数据;若所述数据标识和所述模拟数据集的目标预置数据标识匹配,则将所述目标预置数据标识对应的模拟数据确定为目标数据,并发送至所述第一服务节点。
可选的,在本发明第一方面的第四种实现方式中,在所述将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则之后,还包括:当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果未符合所述目标熔断规则,则根据所述调用错误结果对所述预置的熔断规则进行更新处理,得到更新的预置熔断规则。
可选的,在本发明第一方面的第五种实现方式中,所述当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果未符合所述目标熔断规则,则根据所述调用错误结果对所述预置的熔断规则进行更新处理,得到更新的预置熔断规则,包括:当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果未符合所述目标熔断规则,则将所述第二服务节点中所述调用请求对应的真实数据发送至所述第一服务节点;将所述调用错误结果记录为未熔断调用错误结果;将所述未熔断调用错误结果和所述目标熔断规则进行分析对比,得到更新的预置熔断规则。
可选的,在本发明第一方面的第六种实现方式中,在所述将所述调用请求对应的模拟数据发送至所述第一服务节点之后,还包括:将所述调用请求对应的熔断发生次数存储为所述调用请求的熔断累计次数;当所述熔断累计次数大于或等于预置的熔断累计次数时,生成预防过载措施信息;将所述预防过载措施信息发送至预防过载提示终端。
本发明第二方面提供了一种熔断装置,包括:获取模块,用于获取调用请求,其中,所述调用请求为第一服务节点调用第二服务节点时生成的指令;匹配模块,用于将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;熔断模块,用于当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断;发送模块,用于将所述调用请求对应的模拟数据发送至所述第一服务节点。
可选的,在本发明第二方面的第一种实现方式中,所述匹配模块具体用于:获取所述调用请求的关键字;将所述关键字与预置的熔断规则集进行匹配,其中,所述熔断规则集包括多个预置关键字,每个预置关键字对应一种熔断规则;若所述关键字和所述预置的熔断规则集的目标预置关键字匹配,则将所述目标预置关键字对应的熔断规则确定为所述调用请求的目标熔断规则。
可选的,在本发明第二方面的第二种实现方式中,所述熔断模块具体用于:当所述调用请求对应的执行调用过程产生调用错误时,获取对应的调用错误时长和调用错误次数;根据所述调用错误时长和所述调用错误次数,得到调用错误结果;若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断。
可选的,在本发明第二方面的第三种实现方式中,所述发送模块具体用于:获取所述调用请求的数据标识;将所述数据标识和预置的模拟数据集进行匹配,其中,所述模拟数据集包括多个预置数据标识,每个预置数据标识对应一笔模拟数据;若所述数据标识和所述模拟数据集的目标预置数据标识匹配,则将所述目标预置数据标识对应的模拟数据确定为目标数据,并发送至所述第一服务节点。
可选的,在本发明第二方面的第四种实现方式中,所述熔断装置还包括:更新处理模块,用于当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果未符合所述目标熔断规则,则根据所述调用错误结果对所述预置的熔断规则进行更新处理,得到更新的预置熔断规则。
可选的,在本发明第二方面的第五种实现方式中,所述更新处理模块具体用于:当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果未符合所述目标熔断规则,则将所述第二服务节点中所述调用请求对应的真实数据发送至所述第一服务节点;将所述调用错误结果记录为未熔断调用错误结果;将所述未熔断调用错误结果和所述目标熔断规则进行分析对比,得到更新的预置熔断规则。
可选的,在本发明第二方面的第六种实现方式中,所述熔断装置还包括:预防过载模块,用于将所述调用请求对应的熔断发生次数存储为所述调用请求的熔断累计次数;当所述熔断累计次数大于或等于预置的熔断累计次数时,生成预防过载措施信息;将所述预防过载措施信息发送至预防过载提示终端。
本发明第三方面提供了一种熔断设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述熔断设备执行上述的熔断方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的熔断方法。
本发明提供的技术方案中,获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;将调用请求对应的模拟数据发送至第一服务节点。本发明实施例中,基于微服务架构的熔断器,在微服务调用的过程中,通过获取调用请求,根据调用请求在预置的熔断规则中确定目标熔断规则,当执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则根据目标熔断规则对微服务调用进行熔断,返回模拟数据,熔断了调用错误,减少了微服务之间的调用错误。
附图说明
图1为本发明实施例中熔断方法的一个实施例示意图;
图2为本发明实施例中熔断方法的另一个实施例示意图;
图3为本发明实施例中熔断装置的一个实施例示意图;
图4为本发明实施例中熔断装置的另一个实施例示意图;
图5为本发明实施例中熔断设备的一个实施例示意图。
具体实施方式
本发明提供了一种熔断方法、装置、设备及存储介质,用于减少微服务之间的调用错误。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中熔断方法的一个实施例包括:
101、获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;
可以理解的是,本发明的执行主体可以为熔断装置,还可以是服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
其中,服务器获取调用请求,调用请求包括多种请求,例如,一笔订单结账数据、一笔库存数据和一笔目录数据等调用请求。微服务包括多种架构,例如,开源分布式服务框架Dubbo、分布式服务框架云Spring Cloud,其中,开源分布式服务框架Dubbo包括网络通信框架、远程过程调用和服务目录框架,分布式服务框架云Spring Cloud包括服务发现、客户端负载均衡、断路器、服务网关和分布式配置。
102、将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;
其中,熔断是一个过载保护机制,是指当下游服务因访问压力过大而响应变慢或失败时,上游服务为了保护自己以及系统整体的可用性,可以暂时切断对下游服务的调用,熔断规则包括多种规则,例如,在10秒内调用错误次数大于或等于100次、累计调用错误次数50次的调用错误时长大于或等于5秒、调用错误时长20秒的前10秒内调用错误次数的占比大于或等于30%、在调用错误时长10秒中40%调用错误次数的调用错误时长大于或等于4秒。又例如,服务器将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到“调用错误时长20秒的前10秒内调用错误次数的占比大于或等于30%”的目标熔断规则。
103、当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;
其中,熔断的过程包括切断联系和重新恢复正常,例如,第一服务节点向第二服务节点发送调用请求,当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,服务器根据预置的熔断规则判断调用错误结果是否符合预置的熔断规则,若调用错误结果符合预置的熔断规则,则对第一服务节点和第二服务节点之间的调用进行熔断,在指定的熔断时间之后,再次判断调用错误结果是否符合预置的熔断规则,若调用错误结果未符合预置的熔断规则,则恢复第一服务节点和第二服务节点之间的正常调用。
104、将调用请求对应的模拟数据发送至第一服务节点。
其中,模拟数据包括多种数据,例如,模拟真实接口的数据、模拟业务场景的数据等,模拟数据可以是一笔理财推荐数据,可以是一笔购物推荐数据,可以是一笔视频推荐数据。当第一服务节点和第二服务节点之间的调用被熔断时,第一服务节点无法直接从第二服务节点获取调用请求对应的真实数据,而是服务器将调用请求对应的模拟数据发送至第一服务节点。
本发明实施例中,获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;将调用请求对应的模拟数据发送至第一服务节点,减少了微服务之间的调用错误。
请参阅图2,本发明实施例中熔断方法的另一个实施例包括:
201、获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;
其中,服务器获取调用请求,调用请求包括多种请求,例如,一笔订单结账数据、一笔库存数据和一笔目录数据等调用请求。微服务包括多种架构,例如,开源分布式服务框架Dubbo、分布式服务框架云Spring Cloud,其中,开源分布式服务框架Dubbo包括网络通信框架、远程过程调用和服务目录框架,分布式服务框架云Spring Cloud包括服务发现、客户端负载均衡、断路器、服务网关和分布式配置。
其中,调用请求的调用方式包括多种方式,例如,远程过程调用方式(RemoteProcedure Call,RPC)、事件驱动方式(Event-Driven),其中,事件驱动方式包括事件通知(Event Notification)和事件溯源(Event Sourcing),采用事件通知方式的微服务之间不直接调用,而是通过发消息来进行合作。例如,当用户进行购物时,采用事件通知方式,用户选好商品之后进行“结账”,“结帐”服务完成之后发送“下订单”消息,“付款”服务收到消息,接收用户付款,发送“已收到付款”消息,“库存”服务收到消息,从仓库里取货,并发送“提取货物”消息,“装运”服务得到消息,发送货物,并发送“已装运货物”消息;采用PRC调用方式,用户选好商品之后进行“结帐”生成“命令”,“命令”调用“付款”,用户付款完成后调用“库存”进行“取货”,“取货”调用“装运”进行发货。
202、将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;
其中,熔断是一个过载保护机制,是指当下游服务因访问压力过大而响应变慢或失败时,上游服务为了保护自己以及系统整体的可用性,可以暂时切断对下游服务的调用,熔断规则包括多种规则,例如,在10秒内调用错误次数大于或等于100次、累计调用错误次数50次的调用错误时长大于或等于5秒、调用错误时长20秒的前10秒内调用错误次数的占比大于或等于30%、在调用错误时长10秒中40%调用错误次数的调用错误时长大于或等于4秒。又例如,服务器将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到“调用错误时长20秒的前10秒内调用错误次数的占比大于或等于30%”的目标熔断规则。
具体的,服务器获取调用请求的关键字;例如,获取调用请求的关键字,调用请求1的关键字为“支付账单”,或者调用请求2的关键字为“目录列表”,或者调用请求3的关键字为“库存清单”,或者调用请求4的关键字为“商品订单”。
服务器将关键字与预置的熔断规则集进行匹配,其中,熔断规则集包括多个预置关键字,每个预置关键字对应一种熔断规则;例如,将关键字与预置的熔断规则集进行匹配,其中,预置的熔断规则集包括预置关键字“支付账单”、“目录列表”、“库存清单”、“商品订单”,每个预置关键字对应一种熔断规则,其中,预置关键字“支付账单”对应的熔断规则为“在10秒内调用错误次数大于或等于100次”,预置关键字“目录列表”对应的熔断规则为“累计调用错误次数50次的调用错误时长大于或等于5秒”、预置关键字“库存清单”对应的熔断规则为“调用错误时长20秒的前10秒内调用错误次数的占比大于或等于30%”、预置关键字“商品订单”对应的熔断规则为“在调用错误时长10秒中40%调用错误次数的调用错误时长大于或等于4秒”。
若关键字和预置的熔断规则集的目标预置关键字匹配,则服务器将目标预置关键字对应的熔断规则确定为调用请求的目标熔断规则。例如,若调用请求1的关键字为“支付账单”,则调用请求1的关键字和预置的熔断规则集的预置关键字“支付账单”匹配,并将预置关键字“支付账单”对应的“在10秒内调用错误次数大于或等于100次”的熔断规则确定为调用请求1的目标熔断规则;或者若调用请求2的关键字为“目录列表”,则调用请求2的关键字和预置的熔断规则集的预置关键字“目录列表”匹配,并将预置关键字“目录列表”对应的“累计调用错误次数50次的调用错误时长大于或等于5秒”的熔断规则确定为调用请求2的目标熔断规则;或者若调用请求3的关键字为“库存清单”,则调用请求3的关键字和预置的熔断规则集的预置关键字“库存清单”匹配,并将预置关键字“库存清单”对应的“调用错误时长20秒的前10秒内调用错误次数的占比大于或等于30%”的熔断规则确定为调用请求3的目标熔断规则;或者若调用请求4的关键字为“商品订单”,则调用请求4的关键字和预置的熔断规则集的预置关键字“商品订单”匹配,并将预置关键字“商品订单”对应的“在调用错误时长10秒中40%调用错误次数的调用错误时长大于或等于4秒”的熔断规则确定为调用请求4的目标熔断规则。
203、当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;
其中,熔断的过程包括切断联系和重新恢复正常,例如,第一服务节点向第二服务节点发送调用请求,当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,服务器根据预置的熔断规则判断调用错误结果是否符合预置的熔断规则,若调用错误结果符合预置的熔断规则,则对第一服务节点和第二服务节点之间的调用进行熔断,在指定的熔断时间之后,再次判断调用错误结果是否符合预置的熔断规则,若调用错误结果未符合预置的熔断规则,则恢复第一服务节点和第二服务节点之间的正常调用。
具体的,当调用请求对应的执行调用过程产生调用错误时,服务器获取对应的调用错误时长和调用错误次数;例如,调用请求1的调用错误时长为10秒,调用请求1的调用错误次数为150次;或者调用请求2的调用错误时长为7秒,调用请求2的调用错误次数为50次;或者调用请求3的调用错误时长为20秒,调用请求3的调用错误次数为250次;或者调用请求4的调用错误时长为10秒,调用请求4的调用错误次数为100次。
服务器根据调用错误时长和调用错误次数,得到调用错误结果;例如,调用请求1的调用错误时长为10秒,调用请求1的调用错误次数为150次,根据调用请求1的调用错误时长和调用错误次数,得到调用错误结果为“在10秒内调用错误次数等于150次”;或者调用请求2的调用错误时长为7秒,调用请求2的调用错误次数为50次,根据调用请求2的调用错误时长和调用错误次数,得到调用错误结果为“累计调用错误次数50次的调用错误时长等于7秒”;或者调用请求3的调用错误时长为20秒,调用请求3的调用错误次数为200次,其中,前10秒内的调用错误次数为120次,根据调用请求3的调用错误时长和调用错误次数,得到调用错误结果为“调用错误时长20秒的前10秒内调用错误次数的占比等于60%”;或者调用请求4的调用错误时长为10秒,调用请求4的调用错误次数为100次,其中,40次调用错误时长为6秒,根据调用请求4的调用错误时长和调用错误次数,得到调用错误结果为“在调用错误时长10秒中40%调用错误次数的调用错误时长等于6秒”。
若调用错误结果符合目标熔断规则,则服务器对第一服务节点与第二服务节点之间的调用进行熔断。例如,调用请求1的调用错误结果为“在10秒内调用错误次数等于150次”,若目标熔断规则为“在10秒内调用错误次数大于或等于100次”,则调用请求1的调用错误结果符合目标熔断规则,将第一服务节点与第二服务节点之间的调用进行熔断;或者调用请求2的调用错误结果为“累计调用错误次数50次的调用错误时长等于7秒”,若目标熔断规则为“累计调用错误次数50次的调用错误时长大于或等于5秒”,则调用请求2的调用错误结果符合目标熔断规则,将第一服务节点与第二服务节点之间的调用进行熔断;或者调用请求3的调用错误结果为“调用错误时长20秒的前10秒内调用错误次数的占比等于60%”,若目标熔断规则为“调用错误时长20秒的前10秒内调用错误次数的占比大于或等于30%”,则调用请求3的调用错误结果符合目标熔断规则,将第一服务节点与第二服务节点之间的调用进行熔断;或者调用请求4的调用错误结果为“在调用错误时长10秒中40%调用错误次数的调用错误时长等于6秒”,若目标熔断规则为“在调用错误时长10秒中40%调用错误次数的调用错误时长大于或等于4秒”,则调用请求4的调用错误结果符合目标熔断规则,将第一服务节点与第二服务节点之间的调用进行熔断。
204、当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果未符合目标熔断规则,则根据调用错误结果对预置的熔断规则进行更新处理,得到更新的预置熔断规则;
具体的,当调用请求对应的执行调用过程产生调用错误时,服务器生成对应的调用错误结果,若调用错误结果未符合目标熔断规则,则服务器将第二服务节点中调用请求对应的真实数据发送至第一服务节点;将调用错误结果记录为未熔断调用错误结果;将未熔断调用错误结果和目标熔断规则进行分析对比,得到更新的预置熔断规则。
例如,当调用请求对应的执行调用过程产生调用错误时,服务器生成对应的调用错误结果,若调用请求1的调用错误结果为“在10秒内调用错误次数等于50次”未符合“在10秒内调用错误次数大于或等于100次”的目标熔断规则,则服务器将第二服务节点中调用请求对应的真实数据发送至第一服务节点,将“在10秒内调用错误次数等于50次”的调用错误结果记录为未熔断调用错误结果,将未熔断调用错误结果和目标熔断规则进行分析对比,得到更新的预置熔断规则为“在10秒内调用错误次数大于或等于50次”;或者若调用请求2的调用错误结果为“累计调用错误次数50次的调用错误时长等于3秒”未符合“累计调用错误次数50次的调用错误时长大于或等于5秒”的目标熔断规则,则将第二服务节点中调用请求对应的真实数据发送至第一服务节点,将“累计调用错误次数50次的调用错误时长等于3秒”的调用错误结果记录为未熔断调用错误结果,将未熔断调用错误结果和目标熔断规则进行分析对比,得到更新的预置熔断规则为“累计调用错误次数50次的调用错误时长大于或等于3秒”;或者若调用请求3的调用错误结果为“调用错误时长20秒的前10秒内调用错误次数的占比等于20%”未符合“调用错误时长20秒的前10秒内调用错误次数的占比大于或等于30%”的目标熔断规则,则将第二服务节点中调用请求对应的真实数据发送至第一服务节点,将“调用错误时长20秒的前10秒内调用错误次数的占比等于20%”的调用错误结果记录为未熔断调用错误结果,将未熔断调用错误结果和目标熔断规则进行分析对比,得到更新的预置熔断规则为“调用错误时长20秒的前10秒内调用错误次数的占比大于或等于20%”;或者若调用请求4的调用错误结果为“在调用错误时长10秒中40%调用错误次数的调用错误时长等于3秒”未符合“在调用错误时长10秒中40%调用错误次数的调用错误时长大于或等于4秒”的目标熔断规则,则将第二服务节点中调用请求对应的真实数据发送至第一服务节点,将“在调用错误时长10秒中40%调用错误次数的调用错误时长等于3秒”的调用错误结果记录为未熔断调用错误结果,将未熔断调用错误结果和目标熔断规则进行分析对比,得到更新的预置熔断规则为“在调用错误时长10秒中40%调用错误次数的调用错误时长大于或等于3秒”。
205、将调用请求对应的模拟数据发送至第一服务节点;
其中,模拟数据包括多种数据,例如,模拟真实接口的数据、模拟业务场景的数据等,模拟数据可以是一笔理财推荐数据,可以是一笔购物推荐数据,可以是一笔视频推荐数据。当第一服务节点和第二服务节点之间的调用被熔断时,第一服务节点无法直接从第二服务节点获取调用请求对应的真实数据,而是服务器将调用请求对应的模拟数据发送至第一服务节点。
具体的,服务器获取调用请求的数据标识;例如,获取调用请求的数据标识,调用请求1的数据标识为a,或者调用请求2的数据标识为b,或者调用请求3的数据标识为c,或者调用请求4的数据标识为d。
服务器将数据标识和预置的模拟数据集进行匹配,其中,模拟数据集包括多个预置数据标识,每个预置数据标识对应一笔模拟数据;例如,将数据标识和预置的模拟数据集进行匹配,其中,模拟数据集包括多个预置数据标识,多个预置数据标识为A、B、C、D,每个预置数据标识对应一笔模拟数据,其中,预置数据标识A对应一笔“支付账单模拟数据”,预置数据标识B对应一笔“目录列表模拟数据”,预置数据标识C对应一笔“库存清单模拟数据”,预置数据标识D对应一笔“商品订单模拟数据”。
若数据标识和模拟数据集的目标预置数据标识匹配,则服务器将目标预置数据标识对应的模拟数据确定为目标数据,并发送至第一服务节点。例如,若调用请求1的数据标识为a,则数据标识a和模拟数据集的目标预置数据标识A匹配,并将预置数据标识A对应的一笔“支付账单模拟数据”确定为目标数据,并发送至第一服务节点;若调用请求2的数据标识为b,则数据标识b和模拟数据集的目标预置数据标识B匹配,并将预置数据标识B对应的一笔“目录列表模拟数据”确定为目标数据,并发送至第一服务节点;若调用请求3的数据标识为c,则数据标识c和模拟数据集的目标预置数据标识C匹配,并将预置数据标识C对应的一笔“库存清单模拟数据”确定为目标数据,并发送至第一服务节点;若调用请求4的数据标识为d,则数据标识d和模拟数据集的目标预置数据标识D匹配,并将预置数据标识D对应的一笔“商品订单模拟数据”确定为目标数据,并发送至第一服务节点。
206、根据调用请求对应的熔断发生次数生成预防过载措施信息,并发送至预防过载提示终端。
具体的,服务器将调用请求对应的熔断发生次数存储为调用请求的熔断累计次数;当熔断累计次数大于或等于预置的熔断累计次数时,生成预防过载措施信息;将预防过载措施信息发送至预防过载提示终端。
例如,当根据调用请求1进行调用时,发生第1次熔断,服务器将调用请求1对应的熔断发生次数存储为调用请求1的熔断累计次数1,当再次根据调用请求1进行调用时,发生第2次熔断,服务器将调用请求1对应的熔断发生次数存储为调用请求1的熔断累计次数2,若预置的熔断累计次数为5,则当调用请求1的熔断累计次数为5时,生成预防过载措施信息;将预防过载措施信息发送至预防过载提示终端。
其中,预防过载措施信息包括多种预防过载措施信息,例如,“请求量分流,降低单服请求量”、“控制请求频率”、“增加缓冲区”和“分离处理模块”等等预防过载措施信息,其中,通过“分离处理模块”将负载分配到不同的模块或者服务器,“控制请求频率”是通过在前端控制请求频率,若请求频率大于或等于阈值,则停止调用,并延迟指定时间,在指定时间后再次进行调用。
本发明实施例中,获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;将调用请求对应的模拟数据发送至第一服务节点,减少了微服务之间的调用错误。
上面对本发明实施例中熔断方法进行了描述,下面对本发明实施例中熔断装置进行描述,请参阅图3,本发明实施例中熔断装置一个实施例包括:
获取模块301,用于获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;
匹配模块302,用于将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;
熔断模块303,用于当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;
发送模块304,用于将调用请求对应的模拟数据发送至第一服务节点。
本发明实施例中,获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;将调用请求对应的模拟数据发送至第一服务节点,减少了微服务之间的调用错误。
请参阅图4,本发明实施例中熔断装置的另一个实施例包括:
获取模块301,用于获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;
匹配模块302,用于将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;
熔断模块303,用于当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;
发送模块304,用于将调用请求对应的模拟数据发送至第一服务节点。
可选的,匹配模块302还可以具体用于:
获取调用请求的关键字;
将关键字与预置的熔断规则集进行匹配,其中,熔断规则集包括多个预置关键字,每个预置关键字对应一种熔断规则;
若关键字和预置的熔断规则集的目标预置关键字匹配,则将目标预置关键字对应的熔断规则确定为调用请求的目标熔断规则。
可选的,熔断模块303还可以具体用于:
当调用请求对应的执行调用过程产生调用错误时,获取对应的调用错误时长和调用错误次数;
根据调用错误时长和调用错误次数,得到调用错误结果;
若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断。
可选的,发送模块304还可以具体用于:
获取调用请求的数据标识;
将数据标识和预置的模拟数据集进行匹配,其中,模拟数据集包括多个预置数据标识,每个预置数据标识对应一笔模拟数据;
若数据标识和模拟数据集的目标预置数据标识匹配,则将目标预置数据标识对应的模拟数据确定为目标数据,并发送至第一服务节点。
可选的,熔断装置还包括:
更新处理模块305,用于当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果未符合目标熔断规则,则根据调用错误结果对预置的熔断规则进行更新处理,得到更新的预置熔断规则。
可选的,更新处理模块305还可以具体用于:
当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果未符合目标熔断规则,则将第二服务节点中调用请求对应的真实数据发送至第一服务节点;
将调用错误结果记录为未熔断调用错误结果;
将未熔断调用错误结果和目标熔断规则进行分析对比,得到更新的预置熔断规则。
可选的,熔断装置还包括:
预防过载模块306,用于将调用请求对应的熔断发生次数存储为调用请求的熔断累计次数;
当熔断累计次数大于或等于预置的熔断累计次数时,生成预防过载措施信息;
将预防过载措施信息发送至预防过载提示终端。
本发明实施例中,获取调用请求,其中,调用请求为第一服务节点调用第二服务节点时生成的指令;将调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;当调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若调用错误结果符合目标熔断规则,则对第一服务节点与第二服务节点之间的调用进行熔断;将调用请求对应的模拟数据发送至第一服务节点,减少了微服务之间的调用错误。
上面图3和图4从模块化功能实体的角度对本发明实施例中的熔断装置进行详细描述,下面从硬件处理的角度对本发明实施例中熔断设备进行详细描述。
图5是本发明实施例提供的一种熔断设备的结构示意图,该熔断设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对熔断设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在熔断设备500上执行存储介质530中的一系列指令操作。
熔断设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的熔断设备结构并不构成对熔断设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种熔断设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述熔断方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述熔断方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种熔断方法,其特征在于,所述熔断方法包括:
获取调用请求,其中,所述调用请求为第一服务节点调用第二服务节点时生成的指令;
将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;
当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断;
将所述调用请求对应的模拟数据发送至所述第一服务节点。
2.根据权利要求1所述的熔断方法,其特征在于,所述将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则,包括:
获取所述调用请求的关键字;
将所述关键字与预置的熔断规则集进行匹配,其中,所述熔断规则集包括多个预置关键字,每个预置关键字对应一种熔断规则;
若所述关键字和所述预置的熔断规则集的目标预置关键字匹配,则将所述目标预置关键字对应的熔断规则确定为所述调用请求的目标熔断规则。
3.根据权利要求1所述的熔断方法,其特征在于,所述当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断,包括:
当所述调用请求对应的执行调用过程产生调用错误时,获取对应的调用错误时长和调用错误次数;
根据所述调用错误时长和所述调用错误次数,得到调用错误结果;
若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断。
4.根据权利要求1所述的熔断方法,其特征在于,所述将所述调用请求对应的模拟数据发送至所述第一服务节点,包括:
获取所述调用请求的数据标识;
将所述数据标识和预置的模拟数据集进行匹配,其中,所述模拟数据集包括多个预置数据标识,每个预置数据标识对应一笔模拟数据;
若所述数据标识和所述模拟数据集的目标预置数据标识匹配,则将所述目标预置数据标识对应的模拟数据确定为目标数据,并发送至所述第一服务节点。
5.根据权利要求1所述的熔断方法,其特征在于,在所述将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则之后,还包括:
当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果未符合所述目标熔断规则,则根据所述调用错误结果对所述预置的熔断规则进行更新处理,得到更新的预置熔断规则。
6.根据权利要求5所述的熔断方法,其特征在于,所述当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果未符合所述目标熔断规则,则根据所述调用错误结果对所述预置的熔断规则进行更新处理,得到更新的预置熔断规则,包括:
当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果未符合所述目标熔断规则,则将所述第二服务节点中所述调用请求对应的真实数据发送至所述第一服务节点;
将所述调用错误结果记录为未熔断调用错误结果;
将所述未熔断调用错误结果和所述目标熔断规则进行分析对比,得到更新的预置熔断规则。
7.根据权利要求1-6中任意一项所述的熔断方法,其特征在于,在所述将所述调用请求对应的模拟数据发送至所述第一服务节点之后,还包括:
将所述调用请求对应的熔断发生次数存储为所述调用请求的熔断累计次数;
当所述熔断累计次数大于或等于预置的熔断累计次数时,生成预防过载措施信息;
将所述预防过载措施信息发送至预防过载提示终端。
8.一种熔断装置,其特征在于,所述熔断装置包括:
获取模块,用于获取调用请求,其中,所述调用请求为第一服务节点调用第二服务节点时生成的指令;
匹配模块,用于将所述调用请求和预置的熔断规则中多种熔断规则进行匹配,得到目标熔断规则;
熔断模块,用于当所述调用请求对应的执行调用过程产生调用错误时,生成对应的调用错误结果,若所述调用错误结果符合所述目标熔断规则,则对所述第一服务节点与所述第二服务节点之间的调用进行熔断;
发送模块,用于将所述调用请求对应的模拟数据发送至所述第一服务节点。
9.一种熔断设备,其特征在于,所述熔断设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述熔断设备执行如权利要求1-7中任意一项所述的熔断方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述熔断方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210671451.2A CN115145756A (zh) | 2022-06-15 | 2022-06-15 | 熔断方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210671451.2A CN115145756A (zh) | 2022-06-15 | 2022-06-15 | 熔断方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115145756A true CN115145756A (zh) | 2022-10-04 |
Family
ID=83408843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210671451.2A Pending CN115145756A (zh) | 2022-06-15 | 2022-06-15 | 熔断方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115145756A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493067A (zh) * | 2023-12-29 | 2024-02-02 | 北京淘友天下技术有限公司 | 基于数据服务保护的熔断控制方法及系统 |
-
2022
- 2022-06-15 CN CN202210671451.2A patent/CN115145756A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493067A (zh) * | 2023-12-29 | 2024-02-02 | 北京淘友天下技术有限公司 | 基于数据服务保护的熔断控制方法及系统 |
CN117493067B (zh) * | 2023-12-29 | 2024-04-23 | 北京淘友天下技术有限公司 | 基于数据服务保护的熔断控制方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107392722B (zh) | 订单处理方法、装置、电子设备及存储介质 | |
CN107896170B (zh) | 保险应用系统的监控方法及装置 | |
CN107835228A (zh) | 一种基于动态广义路由的指令处理方法及装置 | |
CN110825399A (zh) | 一种应用程序的部署方法及装置 | |
CN115145756A (zh) | 熔断方法、装置、设备及存储介质 | |
CN111262898A (zh) | 服务降级处理方法、装置及电子设备 | |
CN111143023A (zh) | 一种资源变更的方法及装置、设备、存储介质 | |
TW202034242A (zh) | 支付防抖方法及裝置 | |
CN114328029B (zh) | 一种应用资源的备份方法、装置、电子设备及存储介质 | |
CN110717756B (zh) | 基于合约的支付数据处理装置及方法 | |
CN113645260A (zh) | 业务重试方法、装置、存储介质及电子设备 | |
CN111626802A (zh) | 用于处理信息的方法和装置 | |
CN112350856B (zh) | 分布式服务签退方法及设备 | |
CN116562954A (zh) | 用户渠道归属认定方法、装置、存储介质及程序产品 | |
CN111225117B (zh) | 一种提醒消息的下发方法及装置 | |
CN113986915A (zh) | 一种数据存证方法及装置 | |
CN113516523A (zh) | 一种订单数据处理方法和接单系统 | |
CN112799797A (zh) | 一种任务管理的方法和装置 | |
CN111880949A (zh) | 一种业务信息的处理方法、系统、装置、服务器及终端 | |
CN111061576A (zh) | 一种实体对象的创建方法及系统 | |
CN109067611A (zh) | 检测系统间通讯状态的方法、装置、存储介质及处理器 | |
CN115002183B (zh) | 信息的生成方法、装置、电子设备、介质和程序产品 | |
CN114374650B (zh) | 基于路由中间件的通知发送方法、存储介质和电子设备 | |
CN115086778B (zh) | 视频流的ai处理方法及装置 | |
US10819777B1 (en) | Failure isolation in a distributed system |
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 |