[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN117170844A - 分布式锁的离线传播方法、装置、计算机设备及存储介质 - Google Patents

分布式锁的离线传播方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN117170844A
CN117170844A CN202311132383.3A CN202311132383A CN117170844A CN 117170844 A CN117170844 A CN 117170844A CN 202311132383 A CN202311132383 A CN 202311132383A CN 117170844 A CN117170844 A CN 117170844A
Authority
CN
China
Prior art keywords
service
offline
distributed lock
request
identity
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
Application number
CN202311132383.3A
Other languages
English (en)
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.)
Qichacha Technology Co ltd
Original Assignee
Qichacha Technology 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 Qichacha Technology Co ltd filed Critical Qichacha Technology Co ltd
Priority to CN202311132383.3A priority Critical patent/CN117170844A/zh
Publication of CN117170844A publication Critical patent/CN117170844A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本公开涉及分布式计算机系统技术领域,具体公开了一种分布式锁的离线传播方法、装置、计算机设备及存储介质,所述方法包括:接收客户端发送的业务请求,根据所述业务请求确定业务参数;基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁;根据所述业务参数确定所述业务请求的业务复杂度;在确定所述业务复杂度满足离线规则的情况下,根据所述业务复杂度设置所述分布式锁的超时时间,并将所述业务参数和所述分布式锁的身份标识发送至离线服务。本公开仅可以根据业务参数灵活转发至离线服务,还保证了分布式锁对离线服务的效用,避免分布式锁在进入离线服务后失效,规范了离线服务的分布式锁。

Description

分布式锁的离线传播方法、装置、计算机设备及存储介质
技术领域
本公开涉及分布式计算机系统技术领域,特别是涉及一种分布式锁的离线传播方法、装置、计算机设备及存储介质。
背景技术
随着计算机系统的发展,原单体单机部署的业务系统被演化为分布式集群系统。由于分布式系统多线程、多进程并且分布在不同机器上,为了防止分布式系统中多个进程之间相互干扰,需要分布式锁来对这些进程进行调度,其中,分布式锁是一种分布式协调技术。
在相关技术中,业务系统需要完成的业务复杂度多样且趋向复杂化,使得业务系统存在在线办理业务和离线办理业务混杂的情况。这使得分布式锁的使用复杂化,难以适应多变的业务处理情况。
发明内容
基于此,有必要针对上述技术问题,提供一种分布式锁的离线传播方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本公开提供了一种分布式锁的离线传播方法。所述方法包括:
接收客户端发送的业务请求,根据所述业务请求确定业务参数;
基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁;
根据所述业务参数确定所述业务请求的业务复杂度;
在确定所述业务复杂度满足离线规则的情况下,根据所述业务复杂度设置所述分布式锁的超时时间,并将所述业务参数和所述分布式锁的身份标识发送至离线服务。
在其中一个实施例中,所述方法还包括:
响应于所述离线服务处理完毕所述业务请求,根据所述分布式锁的身份标识释放所述分布式锁。
在其中一个实施例中,所述基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁包括:
根据所述业务参数和所述业务请求对应的用户标识加密后生成所述分布式锁的身份标识;
将所述分布式锁的身份标识作为关键字存入数据库。
在其中一个实施例中,根据所述业务参数确定所述业务请求的业务复杂度包括:
基于业务参数确定响应所述业务请求的调用链路;
根据所述调用链路计算所述业务请求的业务复杂度。
在其中一个实施例中,所述将所述业务参数和所述分布式锁的身份标识发送至离线服务包括:
向所述离线服务发送离线线程请求,所述离线线程请求的请求参数中至少包括所述业务参数和所述分布式锁的身份标识;
返回所述离线线程请求的响应至所述客户端。
在其中一个实施例中,所述将所述业务参数和所述分布式锁的身份标识发送至离线服务包括:
向消息队列发送离线线程消息,所述离线线程消息至少包括所述业务参数和所述分布式锁的身份标识;
所述离线服务从所述消息队列中获取所述离线线程消息。
第二方面,本公开还提供了一种分布式锁的离线传播装置。所述装置包括:
业务请求模块,用于接收客户端发送的业务请求,根据所述业务请求确定业务参数;
分布式锁模块,用于基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁;
复杂度模块,用于根据所述业务参数确定所述业务请求的业务复杂度;
离线模块,用于在确定所述业务复杂度满足离线规则的情况下,根据所述业务复杂度设置所述分布式锁的超时时间,并将所述业务参数和所述分布式锁的身份标识发送至离线服务。
在其中一个实施例中,所述装置还包括:
锁释放模块,用于响应于所述离线服务处理完毕所述业务请求,根据所述分布式锁的身份标识释放所述分布式锁。
在其中一个实施例中,所述分布式锁模块包括:
标识生成单元,用于根据所述业务参数和所述业务请求对应的用户标识加密后生成所述分布式锁的身份标识;
关键字单元,用于将所述分布式锁的身份标识作为关键字存入数据库。
在其中一个实施例中,所述复杂度模块包括:
调用链路单元,用于基于业务参数确定响应所述业务请求的调用链路;
计算单元,用于根据所述调用链路计算所述业务请求的业务复杂度。
在其中一个实施例中,所述离线模块包括:
离线线程请求单元,用于向所述离线服务发送离线线程请求,所述离线线程请求的请求参数中至少包括所述业务参数和所述分布式锁的身份标识;
响应返回单元,用于返回所述离线线程请求的响应至所述客户端。
在其中一个实施例中,所述离线模块包括:
离线线程消息单元,用于向消息队列发送离线线程消息,所述离线线程消息至少包括所述业务参数和所述分布式锁的身份标识;
消息队列单元,用于所述离线服务从所述消息队列中获取所述离线线程消息。
第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述分布式锁的离线传播方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述分布式锁的离线传播方法的步骤。
第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述分布式锁的离线传播方法的步骤。
上述分布式锁的离线传播方法、装置、计算机设备、存储介质和计算机程序产品,至少包括以下有益效果:
本公开通过获取业务请求对应的业务参数,并根据业务参数确定业务复杂度,进而根据离线规则将业务参数和分布式锁的身份标识转发至离线服务,不仅可以根据业务参数灵活转发至离线服务,还保证了分布式锁对离线服务的效用,避免分布式锁在进入离线服务后失效,规范了离线服务的分布式锁,实现了分布式锁在分布式系统中,一个请求在同一时间只被服务器集群的一个应用服务节点的一个线程执行,或只被一个离线服务节点的一个离线线程执行的目的。
附图说明
为了更清楚地说明本公开实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中分布式锁的离线传播方法的应用环境图;
图2为一个实施例中分布式锁的离线传播方法的流程示意图;
图3为一个实施例中生成分布式锁步骤的流程示意图;
图4为一个实施例中确定业务复杂度步骤的流程示意图;
图5为一个实施例中请求离线服务步骤的流程示意图;
图6为另一个实施例中请求离线服务步骤的流程示意图;
图7为一个实施例中分布式锁的离线传播装置的结构框图;
图8为另一个实施例中分布式锁的离线传播装置的结构框图;
图9为一个实施例中分布式锁模块的结构框图;
图10为一个实施例中复杂度模块的结构框图;
图11为一个实施例中离线模块的结构框图;
图12为另一个实施例中离线模块的结构框图;
图13为一个实施例中计算机设备的内部结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中在本公开的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本公开。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中,术语“和/或”包括相关所列项目的任何及所有组合。
本公开实施例提供的分布式锁的离线传播方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器集群104进行通信,服务器集群104上部署有分布式系统。分布式系统中还包括离线服务,离线服务可以由服务器集群104提供或者其他服务器提供。数据存储系统可以存储服务器集群104需要处理的数据。数据存储系统可以集成在服务器集群104上,也可以放在云上或其他网络服务器上。终端102可以向服务器集群104发送业务请求。服务器集群104可以处理该业务请求,并返回终端102响应。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
在本公开的一些实施例中,如图2所示,提供了一种分布式锁的离线传播方法,以该方法应用于图1中的服务器集群为例进行说明,包括以下步骤:
步骤210,接收客户端发送的业务请求,根据所述业务请求确定业务参数。
示例性地,服务器集群可以接收客户端发送的业务请求,业务请求用于请求服务器集群办理对应的业务。服务器集群可以根据业务请求确定客户端请求办理的业务的业务参数。业务参数中可以包括办理业务所需要的数据。例如客户端发送的业务请求用于请求导出一批目标数据对象,业务参数则可以包括导出地址、目标数据源等。
步骤220,基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁。
示例性地,服务器集群可以根据该业务请求建立分布式锁的身份标识,即分布式锁ID(Identity document),并可以根据该分布式锁ID生成对应的分布式锁。
步骤230,根据所述业务参数确定所述业务请求的业务复杂度。
示例性地,服务器集群可以根据业务参数计算该业务请求对应的业务复杂度。其中,业务复杂度可以表征办理业务所占用的资源和/或时间。服务器集群可以根据历史业务日志,查找与当前业务参数相匹配的历史业务请求,并根据该历史业务请求的业务复杂度确定当前业务请求的业务复杂度。又或者,在业务请求对应的业务包括若干重复的子任务的情况下,服务器集群可以根据历史业务日志确定单独的子任务的耗时。进而服务器集群可以根据当前业务请求对应的业务包括的子任务重复数量计算得到当前业务请求的业务复杂度。
步骤240,在确定所述业务复杂度满足离线规则的情况下,根据所述业务复杂度设置所述分布式锁的超时时间,并将所述业务参数和所述分布式锁的身份标识发送至离线服务。
其中,离线规则可以为办理业务所占用的资源大于等于第一阈值和/或预判时间大于等于第二阈值。
示例性地,服务器集群在获得业务复杂度后,根据离线规则判断业务复杂度是否满足离线要求,在确定业务复杂度满足离线规则的情况下,根据业务复杂度设置分布式锁的超时时间,使得分布式锁可以在达到超时时间时自动释放。服务器集群还可以将业务参数和分布式锁的身份标识发送至离线服务,指示离线服务根据业务参数办理业务,并返回响应至客户端。在确定业务复杂度不满足离线规则的情况下,服务器集群中的某个应用服务节点率先响应该业务请求,则视为该应用服务节点抢锁成功,由该应用服务节点根据业务参数办理业务,并返回响应至客户端。
上述分布式锁的离线传播方法中,通过获取业务请求对应的业务参数,并根据业务参数确定业务复杂度,进而根据离线规则将业务参数和分布式锁的身份标识转发至离线服务,不仅可以根据业务参数灵活转发至离线服务,还保证了分布式锁对离线服务的效用,避免分布式锁在进入离线服务后失效,规范了离线服务的分布式锁,实现了分布式锁在分布式系统中,一个请求在同一时间只被服务器集群的一个应用服务节点的一个线程执行,或只被一个离线服务节点的一个离线线程执行的目的。
在本公开的一些实施例中,所述方法还包括:
步骤250,响应于所述离线服务处理完毕所述业务请求,根据所述分布式锁的身份标识释放所述分布式锁。
示例性地,服务器集群在确定离线服务处理完毕该业务请求时,可以根据分布式锁ID释放该分布式锁,避免离线线程被占用。
本实施例的分布式锁支持两种释放方式,一种为分布式锁达到超时时间,另一种为离线服务处理完毕业务请求,确保了分布式锁在离线线程场景的稳定性。
在本公开的一些实施例中,如图3所示,步骤220包括:
步骤222,根据所述业务参数和所述业务请求对应的用户标识加密后生成所述分布式锁的身份标识。
示例性地,服务器集群可以根据业务参数加密后生成分布式锁ID,例如可以根据业务参数中的业务功能标识,结合业务请求的用户标识,组合后进行MD5(Message-DigestAlgorithm 5,消息摘要算法)加密生成32位字符串作为分布式锁ID。
步骤224,将所述分布式锁的身份标识作为关键字存入数据库。
示例性地,服务器集群将生成的分布式锁ID作为关键字存入数据库,例如Redis(Remote Dictionary Server,远程字典服务)数据库,Redis数据库通常是指一种开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(键值对)数据库。
本实施例通过业务参数结合用户标识进行加密后获得分布式锁ID,不仅提高了分布式锁ID的唯一性和可靠性,可以快速将分布式锁ID存入数据库中,便于后续查找和释放该分布式锁。
在本公开的一些实施例中,如图4所示,步骤230包括:
步骤232,基于业务参数确定响应所述业务请求的调用链路。
示例性地,服务器集群可以根据业务参数确定响应该业务请求的调用链路。在业务系统中,办理一项业务时存在调用多个应用服务节点的情况,调用链路可以表征办理业务需要调用的应用服务节点的数量和顺序。服务器集群可以根据业务参数进行解析,确定调用链路;或者,可以根据历史业务日志查找与当前业务参数相匹配的历史业务参数对应的调用链路。
步骤234,根据所述调用链路计算所述业务请求的业务复杂度。
示例性地,服务器集群可以根据调用链路的数量和调用链路中各个应用服务节点的响应速率综合计算响应业务请求的预期时间,进而得到该业务请求的业务复杂度。
本实施例通过业务参数获取调用链路,从调用链路角度计算响应业务请求的预期时间,进而得到该业务请求的业务复杂度,可以更加准确地获取业务复杂度,提高设置分布式锁的超时时间的准确性和适应性。
在本公开的一些实施例中,如图5所示,步骤240包括:
步骤242,向所述离线服务发送离线线程请求,所述离线线程请求的请求参数中至少包括所述业务参数和所述分布式锁的身份标识。
示例性地,服务器集群可以向离线服务发送离线服务请求,并在该离线服务请求的请求参数中至少包括业务参数和分布式锁ID。其中,分布式锁ID可以通过离线服务请求的请求头传播。服务器集群还可以接收离线服务返回的请求响应,请求响应可以用于返回客户端通知请求成功。
步骤244,返回所述离线线程请求的响应至所述客户端。
示例性地,在离线线程根据业务参数处理完毕该业务请求后,可以将离线服务请求的响应返回至客户端,例如可以将导出的目标数据对象返回至客户端。
本实施例通过发送离线服务请求的方式向离线服务传播业务参数和分布式锁ID,可以提高传播效率和稳定性。
在本公开的一些实施例中,如图6所示,步骤240包括:
步骤246,向消息队列发送离线线程消息,所述离线线程消息至少包括所述业务参数和所述分布式锁的身份标识。
示例性地,服务器集群可以向消息队列发送离线线程消息,离线线程消息中至少包括业务参数和分布式锁ID。其中,分布式锁ID可以通过离线线程消息的消息头传播。服务器集群还可以接收消息队列返回的消息响应,消息响应可以用于返回客户端通知请求成功。
步骤248,所述离线服务从所述消息队列中获取所述离线线程消息。
示例性地,离线服务可以定时从消息队列中获取离线线程消息,进而可以根据离线线程消息中的业务参数通过离线线程处理业务,并在离线线程根据业务参数处理完毕该业务请求后,可以将离线服务请求的响应返回至客户端,例如可以将导出的目标数据对象返回至客户端。例如,消息队列可以采用Kafka消息队列,Kafka消息队列通常是指一种高吞吐量的分布式发布订阅消息系统。
本实施例通过发送离线线程消息的方式向离线服务传播业务参数和分布式锁ID,可以提高传播效率和稳定性;同时通过消息队列可以保持离线线程消息存储的稳定性,并提高了离线线程的处理效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的分布式锁的离线传播方法的分布式锁的离线传播装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个分布式锁的离线传播装置实施例中的具体限定可以参见上文中对于分布式锁的离线传播方法的限定,在此不再赘述。
在本公开的一些实施例中,如图7所示,提供了一种分布式锁的离线传播装置。所述装置包括:
业务请求模块710,用于接收客户端发送的业务请求,根据所述业务请求确定业务参数;
分布式锁模块720,用于基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁;
复杂度模块730,用于根据所述业务参数确定所述业务请求的业务复杂度;
离线模块740,用于在确定所述业务复杂度满足离线规则的情况下,根据所述业务复杂度设置所述分布式锁的超时时间,并将所述业务参数和所述分布式锁的身份标识发送至离线服务。
在本公开的一些实施例中,如图8所示,所述装置700还包括:
锁释放模块750,用于响应于所述离线服务处理完毕所述业务请求,根据所述分布式锁的身份标识释放所述分布式锁。
在本公开的一些实施例中,如图9所示,所述分布式锁模块720包括:
标识生成单元722,用于根据所述业务参数和所述业务请求对应的用户标识加密后生成所述分布式锁的身份标识;
关键字单元724,用于将所述分布式锁的身份标识作为关键字存入数据库。
在本公开的一些实施例中,如图10所示,所述复杂度模块730包括:
调用链路单元732,用于基于业务参数确定响应所述业务请求的调用链路;
计算单元734,用于根据所述调用链路计算所述业务请求的业务复杂度。
在本公开的一些实施例中,如图11所示,所述离线模块740包括:
离线线程请求单元742,用于向所述离线服务发送离线线程请求,所述离线线程请求的请求参数中至少包括所述业务参数和所述分布式锁的身份标识;
响应返回单元744,用于返回所述离线线程请求的响应至所述客户端。
在本公开的一些实施例中,如图12所示,所述离线模块740包括:
离线线程消息单元746,用于向消息队列发送离线线程消息,所述离线线程消息至少包括所述业务参数和所述分布式锁的身份标识;
消息队列单元748,用于所述离线服务从所述消息队列中获取所述离线线程消息。
上述分布式锁的离线传播装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
基于前述分布式锁的离线传播方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分布式锁的离线传播方法。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
基于前述分布式锁的离线传播方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
基于前述分布式锁的离线传播方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
可以理解的是,本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。相关之处参见其他方法实施例的描述说明即可。
上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种分布式锁的离线传播方法,应用于分布式系统,其特征在于,所述方法包括:
接收客户端发送的业务请求,根据所述业务请求确定业务参数;
基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁;
根据所述业务参数确定所述业务请求的业务复杂度;
在确定所述业务复杂度满足离线规则的情况下,根据所述业务复杂度设置所述分布式锁的超时时间,并将所述业务参数和所述分布式锁的身份标识发送至离线服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述离线服务处理完毕所述业务请求,根据所述分布式锁的身份标识释放所述分布式锁。
3.根据权利要求1所述的方法,其特征在于,所述基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁包括:
根据所述业务参数和所述业务请求对应的用户标识加密后生成所述分布式锁的身份标识;
将所述分布式锁的身份标识作为关键字存入数据库。
4.根据权利要求1所述的方法,其特征在于,根据所述业务参数确定所述业务请求的业务复杂度包括:
基于业务参数确定响应所述业务请求的调用链路;
根据所述调用链路计算所述业务请求的业务复杂度。
5.根据权利要求1所述的方法,其特征在于,所述将所述业务参数和所述分布式锁的身份标识发送至离线服务包括:
向所述离线服务发送离线线程请求,所述离线线程请求的请求参数中至少包括所述业务参数和所述分布式锁的身份标识;
返回所述离线线程请求的响应至所述客户端。
6.根据权利要求1所述的方法,其特征在于,所述将所述业务参数和所述分布式锁的身份标识发送至离线服务包括:
向消息队列发送离线线程消息,所述离线线程消息至少包括所述业务参数和所述分布式锁的身份标识;
所述离线服务从所述消息队列中获取所述离线线程消息。
7.一种分布式锁的离线传播装置,其特征在于,所述装置包括:
业务请求模块,用于接收客户端发送的业务请求,根据所述业务请求确定业务参数;
分布式锁模块,用于基于所述业务请求建立分布式锁的身份标识,并生成所述分布式锁;
复杂度模块,用于根据所述业务参数确定所述业务请求的业务复杂度;
离线模块,用于在确定所述业务复杂度满足离线规则的情况下,根据所述业务复杂度设置所述分布式锁的超时时间,并将所述业务参数和所述分布式锁的身份标识发送至离线服务。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202311132383.3A 2023-09-04 2023-09-04 分布式锁的离线传播方法、装置、计算机设备及存储介质 Pending CN117170844A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311132383.3A CN117170844A (zh) 2023-09-04 2023-09-04 分布式锁的离线传播方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311132383.3A CN117170844A (zh) 2023-09-04 2023-09-04 分布式锁的离线传播方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117170844A true CN117170844A (zh) 2023-12-05

Family

ID=88944365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311132383.3A Pending CN117170844A (zh) 2023-09-04 2023-09-04 分布式锁的离线传播方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117170844A (zh)

Similar Documents

Publication Publication Date Title
CN112905323B (zh) 数据处理方法、装置、电子设备及存储介质
US20160224393A1 (en) System and method of distributing processes stored in a common database
CN115237617A (zh) 接口组件的确定方法、装置、设备、存储介质和程序产品
CN115858322A (zh) 日志数据处理方法、装置和计算机设备
CN113111078B (zh) 资源数据处理方法、装置、计算机设备和存储介质
CN117170844A (zh) 分布式锁的离线传播方法、装置、计算机设备及存储介质
CN117151045A (zh) 基于区块链的报表加工方法、装置及计算机设备
CN115730016B (zh) 数据同步方法、系统、装置、计算机设备和存储介质
CN117453759B (zh) 业务数据处理方法、装置、计算机设备和存储介质
CN114925087A (zh) 数据获取方法、装置、计算机设备和存储介质
CN118214613B (zh) 跨网络应用调用方法、装置、设备及存储介质
US20240330268A1 (en) Techniques for data correlation across data sources
CN116909785A (zh) 异常事件的处理方法、装置、设备、存储介质和程序产品
CN118301161A (zh) 数据服务的处理方法、装置、计算机设备和存储介质
CN116566720A (zh) 防火墙策略平移方法、装置、计算机设备和存储介质
CN118672749A (zh) 云端任务调度方法、装置、设备及存储介质
CN116483658A (zh) 服务器性能监控方法、装置、系统、设备和存储介质
CN116541137A (zh) 事务处理方法、装置、计算机设备、存储介质和程序产品
CN116910069A (zh) 数据库更新方法、装置、计算机设备和存储介质
CN117708117A (zh) 批量数据处理方法、装置、电子装置和存储介质
CN118260075A (zh) 数据处理方法、装置、计算机设备、可读存储介质和产品
CN117076721A (zh) 数据查询方法、装置、设备、介质和产品
CN113987322A (zh) 指标数据查询方法、装置、计算机设备和计算机程序产品
CN115630196A (zh) 数据查询方法、装置、计算机设备、存储介质和程序产品
CN117349131A (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