CN106095594A - 一种资源处理的方法、装置及系统 - Google Patents

一种资源处理的方法、装置及系统 Download PDF

Info

Publication number
CN106095594A
CN106095594A CN201610381984.1A CN201610381984A CN106095594A CN 106095594 A CN106095594 A CN 106095594A CN 201610381984 A CN201610381984 A CN 201610381984A CN 106095594 A CN106095594 A CN 106095594A
Authority
CN
China
Prior art keywords
lock
resource
server
operating result
request
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
CN201610381984.1A
Other languages
English (en)
Other versions
CN106095594B (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.)
Sina Technology China Co Ltd
Original Assignee
Sina Technology China 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 Sina Technology China Co Ltd filed Critical Sina Technology China Co Ltd
Priority to CN201610381984.1A priority Critical patent/CN106095594B/zh
Publication of CN106095594A publication Critical patent/CN106095594A/zh
Application granted granted Critical
Publication of CN106095594B publication Critical patent/CN106095594B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Abstract

本申请实施例提供一种资源处理的方法、装置及系统,该方法中业务服务器在确定出进程所需的资源后,可根据该资源,向各锁服务器发送获取该资源对应的各锁的请求,相应的,业务服务器可接收各锁服务器根据该请求返回的各操作结果,其中,当返回的部分操作结果为操作失败,且另一部分操作结果为获取成功时,则可通过该进程获取并处理所述资源。从上述方法中可以看出,由于业务服务器可从至少两个锁服务器中获取该进程所需的锁,因此,即使一个锁服务器出现了运行故障,其他锁服务器也能够向该进程分配锁,进而有效的保证了该进程的正常运行,提高了业务服务器的业务处理效率。

Description

一种资源处理的方法、装置及系统
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源处理的方法、装置及系统。
背景技术
随着网络技术的不断发展,各种应用软件相继出现,人们可通过使用这些应用软件来完成以往需要线下办理的各项业务,因此,这些应用软件的出现极大的提高了人们解决日常问题的能力,为人们的日常生活带来了方便。
在实际应用中,用户在使用应用软件来进行业务处理时,通常可在自己所持有的诸如电脑、智能手机、平台电脑等智能终端中安装的该应用软件上进行操作,进而生成用于业务处理的业务请求,并通过终端将该业务请求发送至处理该业务请求的业务服务器中,而业务服务器在接收到该业务请求后,可根据该业务请求,生成一个用于处理该业务请求的进程,进而在后续过程中,通过运行该进程的方式来完成该业务请求的处理工作,并将得到的处理结果返回给用户。在此过程中,该进程可能需要对服务器中的一些数据进行操作,但是,服务器中的数据通常都是共用的,换句话来说,不同的进程可能都会对同一数据进行操作,若该进程在操作服务器中某一数据的过程中,其他进程也同时对该数据进行了操作,则该进程所操作的数据则可能会因为其他进程的操作而发生更改,从而给该进程的运行带来了影响。
为此,当前通常都是采用一种锁机制来保证进程对数据进行操作的过程中数据的唯一性。具体的,进程在对服务器中的某一数据进行操作之前,可从锁服务器(即向各进程分配锁的服务器)中获取锁,进而通过该锁将该数据进行锁定,这样一来,由于该数据已经被该进程获取的锁进行了锁定,因此,该数据在被锁定的期间,只有该进程才能对它进行操作,而其他进程只有等到该进程运行结束并将该锁释放后,才能陆续对该数据进行操作。因此,锁机制有效的保证了进程在进行数据操作时,数据的唯一性。
然而,在实际应用中,进程获取到的锁通常都是由一台锁服务器提供的,倘若进程在获取锁的过程中,该锁服务器出现了运行异常等状况,则该进程通常只能进行等待,直到锁服务器恢复正常运行并向该进程提供锁后,才能进行后续的工作,因此,当锁服务器出现问题时,将极大的降低业务服务器中进程的运行效率,继而降低了业务服务器处理业务的效率。
发明内容
本申请实施例提供一种资源处理的方法、装置及系统,用以解决现有技术中因锁服务器出现故障而导致业务服务器的业务处理效率降低的问题。
本申请实施例提供的一种资源处理的方法,包括:
确定进程所需的资源;
根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中,所述各锁服务器至少包含两个锁服务器;
接收所述各锁服务器根据所述请求返回的各操作结果;
当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的锁服务器。
本申请实施例提供的一种资源处理的装置,包括:
确定模块,用于确定进程所需的资源;
发送模块,用于根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中,所述各锁服务器至少包含两个锁服务器;
接收模块,用于接收所述各锁服务器根据所述请求返回的各操作结果;
处理模块,用于当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的锁服务器。
本申请实施例提供的一种资源处理的系统,包括:
业务服务器和至少两个锁服务器;
业务服务器,用于确定进程所需的资源,根据所述资源,向每个锁服务器发送获取所述资源对应的锁的请求,接收各锁服务器根据所述请求返回的各操作结果,当部分操作结果为操作失败,且,另一部分操作结果为获取成功时,通过所述进程获取并处理所述资源;
锁服务器,用于接收所述业务服务器发送的获取所述资源对应的锁的请求,根据所述请求向所述业务服务器返回操作结果,其中,当所述资源的锁未分配给其他进程时,则将所述资源对应的锁返回给所述业务服务器,当所述锁服务器出现故障时,则向所述业务服务器返回操作失败。
本申请实施例提供一种资源处理的方法、装置及系统,该方法中业务服务器在确定出进程所需的资源后,可根据该资源,向各锁服务器发送获取该资源对应的各锁的请求,相应的,业务服务器可接收各锁服务器根据该请求返回的各操作结果,其中,当返回的部分操作结果为操作失败,且另一部分操作结果为获取成功时,则可通过该进程获取并处理所述资源。从上述方法中可以看出,由于业务服务器可从至少两个锁服务器中获取该进程所需的锁,因此,即使一个锁服务器出现了运行故障,其他锁服务器也能够向该进程分配锁,进而有效的保证了该进程的正常运行,提高了业务服务器的业务处理效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的资源处理的详细过程;
图2为本申请实施例提供的一种资源处理的装置结构示意图;
图3为本申请实施例提供的一种资源处理的系统的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的资源处理的详细过程,具体包括以下步骤:
S101:确定进程所需的资源。
在实际应用中,进程在运行的过程中,通常都需要对该进程所需的资源进行一定的处理,继而才能完成该进程的运行,而通常情况下,进程所处理的资源通常都是共用的,即,不同的进程在运行时可能都需要对同一资源进行处理,然而,一个进程在对某一资源处理的过程中,其他进程也对该资源进行了处理,则由于该资源会被不同的进程同时进行处理,因此,这两个进程同时对该资源的处理也将会对彼此造成影响,继而使得这两个进程可能都会出现运行不良的状况。因此,为避免这一情况的发生,在现有技术中,通常都会采用一种锁机制来将进程所需的资源进行锁定,该资源在锁定的过程中,其他进程将无法对该资源进行操作,这样一来,该进程在对该资源的操作过程中,该资源将不会受到其他进程运行的影响,从而有效的保证了该进程的正常运行。
而业务服务器中的进程在对该进程所需的资源进行处理之前,需要向获取能够锁定该资源的锁,因此,在本申请实施例中,该进程在对所需的资源进行处理之前,可先向能够向该进程分配锁的锁服务器获取该资源对应的锁,进而在获取到该资源对应的锁后,再获取该资源并处理。而在此之前,业务服务器可先接收用户通过所持的终端发送的业务请求,而后,通过解析该业务请求来生成处理该业务请求的一个进程,业务服务器在生成该进程后,可进一步的确定出该进程所需的资源,进而在后续过程中,通过确定出的该进程所需的资源,向锁服务器发送获取该资源所对应的锁的请求,其中,这里提到的终端可以是电脑、智能手机、平板电脑等终端设备。
S102:根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中,所述各锁服务器至少包含两个锁服务器。
在实际应用中,锁服务器可对不同的资源分别设置各个锁并存储,后续在接收到业务服务器发送的获取锁的请求后,可根据业务服务器发送的请求中包含的资源标识,确定出该进程所要获取的资源,进而将该资源对应的锁返回给进程,而由于本申请实施例意在解决一个锁服务器在出现故障时将导致业务服务器业务处理效率降低的问题,因此,在本申请实施例中,可预先设置不同的锁服务器向业务服务器进行锁分配,其中,各锁服务器可针对同一资源分别设置不同的锁并存储,而后,各锁服务器可将各自存储的对应该资源的锁的标识分别发送给业务服务器,业务服务器在接收到各锁的标识后,可将各标识进行存储,例如,建立一个该资源与各锁标识对应的表并存储,后续业务服务器在从各锁服务器获取该资源对应的各锁时,则可根据先前存储的各锁的标识,依次向各锁服务器发送获取该资源对应的各锁的请求,其中,为了要保证在一个锁服务器出现故障的情况下,该进程依然能从其他锁服务器获取到能够锁定该资源的锁,因此,在本申请实施例中,锁服务器应至少为两个,这样,当一个锁服务器出现故障时,另一个锁服务器依然能够保证向该业务服务器中的该进程分配该进程所需资源对应的锁,从而在一定程度上保证了该进程的顺利运行,当然,锁服务器也可设置的较多一些,进而可尽可能的降低因锁服务器出现故障而导致的业务服务器中进程无法正常运行的情况发生。
需要说明的是,上述提到的各锁服务器并不一定是一个专门用于向业务服务器中各进程分配锁的服务器,这些锁服务器可以是已存在的服务器,如,其他的业务服务器,专门存储数据的服务器等,为了使这些服务器能够向业务服务器的进程分配锁,可事先对这些服务器进行一定的改进,如,可在这些服务器中集成一些功能模块,使这些服务器能够变成具有向该业务服务器中的进程分配锁功能的锁服务器,当然也可采用其他的方法来使一些服务器具备向业务服务器分配锁的功能,在此就不进行一一举例说明了。
S103:接收所述各锁服务器根据所述请求返回的各操作结果。
各锁服务器在接收到业务服务器发送的获取该资源对应的各锁的请求后,将根据该资源对应的各锁的使用情况,向业务服务器返回各锁对应的各操作结果,相应的,后续业务服务器的该进程在接收到各锁服务器返回的各操作结果后,可根据返回的各操作结果,确定是否对该进程所需的资源进行处理。
具体的,在本申请实施例中,该进程在对所需的资源进行操作之前,需要从各锁服务器中获取到该资源对应的各锁,并当获取到各锁后,再对该资源进进行处理,然而,各锁服务器的运行状况有时并不是完全相同的,即,在同一时刻,有的锁服务器可能出现了运行故障,而有的锁服务器则依然正常运行,而为了保证业务服务器中进程的正常运行,当一部分锁服务器出现故障时,该进程依然能够从其他的锁服务器获取该进程所需资源的各锁,进而在获取到各锁后,对该资源进行处理,但是,倘若一个进程在从一部分锁服务器获取到该进程所需资源对应的各锁后,另一部分的锁服务器又恢复了正常的运行状态,则后续其他进程需要从锁服务器中获取该资源对应的锁时,这部分恢复正常的锁服务器将向该其他进程分配该资源对应的各锁,这样一来,由于两个进程都从各锁服务器获取到了该资源所对应的锁,因此,这两个进程将会同时对该资源进行处理,进而使得这两个进程可能都将无法正常运行。
为了避免上述情况的发生,业务服务器中的进程在向各锁服务器获取该进程所需资源对应的各锁时,需要依次向各锁服务器发送获取该资源对应的各锁的请求,这样一来,各锁服务器在接收到业务服务器发送的各请求后,也将分别向业务服务器返回各锁的操作结果,进而,后续该业务服务器的进程可根据各锁服务器返回的各操作结果,确定出该资源对应的各锁的使用情况,进而确定出是否对该资源进行处理。
S104:当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的锁服务器。
业务服务器在获取到各锁服务器返回的各操作结果后,可根据各操作结果,进一步的确定出是否通过该进程获取并处理该资源,其中,由于各锁服务器的运行状况并不是完全相同的,因此,各锁服务器向业务服务器返回的对应各锁的各操作结果可能也将是不同的,当各锁服务器均处于正常运行时,则事先在没有其他进程获取该资源对应的各锁的情况下,各锁服务器将根据业务服务器发送的获取该资源对应的各锁的请求,分别将该资源对应的各锁返回给该业务服务器,即,该业务服务器将从各锁服务器中对应该资源的各锁全部获取到,而当这些锁服务器中,一部分出现了故障,而另一部分依旧正常运行,则业务服务器将从运行正常的锁服务器获取到该资源对应的各锁,而由于本申请实施例意在保证即使一个锁服务器出现了故障,业务服务器依然能够从其他锁服务器中获取到该资源所对应的锁,进而保证该进程的正常运行,因此,业务服务器从一部分运行正常的锁服务器获取到该资源对应的各锁,而并未从出现运行故障的另一部分锁服务器中获取该资源对应的各锁后,业务服务器可认定成功的获取了该资源对应的锁,继而通过业务服务器中的该进程处理该资源,从而有效的保证了该进程的正常运行,提高了业务服务器在进行业务处理时的效率。
当然,各锁服务器向业务服务器返回的各操作结果中除了包含有获取锁成功或是操作失败这两种结果外,还可能包含有其他进程已经获取到锁的操作结果,出现这一操作结果是因为,在实际应用中,当各锁服务器中的一部分锁服务器出现了故障,而另一部分的锁服务器依然正常运行时,业务服务器可从运行正常的这部分锁服务器中获取到各锁,继而确定通过该进程对应该资源进行处理,然而,在经过一段时间后,出现故障的这部分锁服务器恢复了正常,则后续的其他进程在向各锁服务器获取该资源对应的各锁时,则将会从先前出现故障的这部分锁服务器中成功获取到该资源对应的锁,而对于先前已经将该资源对应的各锁分配给该进程的锁服务器(即先前运行正常的锁服务器)来说,这些锁服务器将向该其他进程返回锁已被分配的操作结果,即,冲突操作结果,这时,业务服务器可得知虽然已从一部分锁服务器获取到了该资源对应的各锁,但是,有一部分锁服务器事先已将该资源对应的锁分配给了其他进程,因此,业务服务器将进一步的确定出当前正有一个其他进程对该资源进行处理,相应的,为保证正在处理该资源的其他进程能够正常运行,该业务服务器将不通过该进程处理该资源,同时,将从一部分锁服务器中获取到的该资源对应的各锁进行释放,并在等待设定时间长度后,重新向各锁服务器发送获取该资源对应的各锁的请求。
例如,假设业务服务器在接收到用户A通过终端发送的业务请求后,可通过解析该业务请求而生成出一个进程A,相应的,该业务服务器可进一步的确定出该进程A所需的资源a,并根据确定出的资源a,向4个锁服务器发送获取该资源a对应的各锁的请求,而在获取锁的过程中,2个锁服务器由于出现了故障,因此,将无法向该业务服务器返回该资源a对应的各锁,相应的,这两个出现故障的锁服务器将向业务服务器返回两个操作失败的操作结果,而对于另两个锁服务器来说,由于这两个锁服务器处于正常运行的状态,因此,这两个运行正常的锁服务器可向业务服务器返回该资源a所对应的锁,即,业务服务器获取到的这两个锁服务器返回的操作结果为获取锁成功,相应的,由于该业务服务器从两个锁服务器获取到了该资源a对应的锁,并从另两个锁服务器获取到了操作失败的操作结果,则该业务服务器则可认定该资源a当前并没有被其他进程所占用,进而通过生成的进程A来对该资源a进行处理。而后,业务服务器后续在接收到了用户B发送的业务请求后发现,根据该业务请求而生成的进程B也需要对资源a进行处理,则业务服务器可向这4个锁服务器分别发送获取资源a对应的各锁的请求,此时,先前出现运行故障的两个锁服务器已经恢复了正常运行,则这两个锁服务器在接收到业务服务器发送的请求后,可向该业务服务器返回该资源a所对应的锁,即,业务服务器接收到的这两个锁服务器返回的操作结果为获取锁成功,而对于另两个锁服务器来说,由于这两个锁服务器先前已将该资源a对应的锁分配给了进程A,因此,当这两个锁服务器接收到业务服务器针对进程B而发送的请求后,可向业务服务器返回该资源a的锁已分配给了其他的进程,即,业务服务器接收到的这两个锁服务器返回的操作结果为冲突操作结果,相应的,该业务服务器可确定出该资源a当前正被其他进程所占用,进而不通过该进程B获取并处理该资源a,与此同时,该业务服务器可将针对进程B而获取到的该资源a所对应的锁进行释放,并等待设定时间长度后,重新向这4个锁服务器发送获取该资源a对应的各锁的请求,其中,当等待设定时间长度后,进程A结束了运行并将其所持有的锁进行了释放,则该业务服务器可针对进程B从这4个锁服务器全部获取到该资源a所对应的各锁,进而在全部获取到这4个锁后,确定通过进程B获取该资源a并处理。
由此可以看出,业务服务器从各锁服务器获取到的操作结果基本上可以分为三种结果,即,当锁服务器运行正常且没有将该资源对应的锁分配给其他进程时,业务服务器将从锁服务器获取到的操作结果为获取锁成功,而当锁服务器运行正常,但是已将该资源对应的锁分配给了其他进程时,业务服务器将从锁服务器获取到的操作结果为冲突操作结果,当锁服务器出现故障时,业务服务器将从锁服务器获取到的操作结果为操作失败。相应的,业务服务器接收到的各锁服务器返回的操作结果中可能只包含有一种操作结果,或是可能包含两种操作结果,也或是三种操作结果都包含,而业务服务器在接收到各锁服务器返回的各操作结果后,可根据各操作结果,来确定是否通过所述进程处理所述资源,如表1所示。
表1
从表1中可以看出,当业务服务器接收到的各锁服务器返回的各操作结果中包含有冲突操作结果时,则即使业务服务器获取到的各操作结果中还包含有操作失败或是获取锁成功,也将不通过所述进程处理所述资源,而当业务服务器接收到的各操作结果中一部分为操作失败,而另一部分为获取锁成功时,则业务服务器可通过所述进程处理所述资源,因此,从上述方法中可以看出,即使一个锁服务器出现了故障而无法向业务服务器返回该资源对应的锁,业务服务器也可从其他正常运行的锁服务器中获取到该资源对应的锁,从而有效的保证了该进程的顺利运行,进而提高了业务服务器业务处理的效率。
需要说明的是,上述说明的锁服务器出现故障的情况并不是锁服务器完全无法运行的情况,而是指锁服务器向业务服务器的进程提供锁的功能出现了故障,这样一来,当锁服务器接收到了业务服务器发送的获取所述资源对应的锁的请求后,锁服务器可得知当前自身的向业务服务器的进程分配锁的功能出现了故障,继而向业务服务器返回的操作结果即为操作失败。当然,当锁服务器完全无法运行时,锁服务器即使接收到了业务服务器发送的获取锁的请求,锁服务器可能也将无法响应该请求,因此,对于这种情况来说,当锁服务器完全出现故障时,业务服务器将无法接收到该锁服务器返回的操作结果,但是,由于其他运行正常或仅是分配锁功能出现故障的锁服务器依然可以向业务服务器返回各操作结果,因此,业务服务器可根据接收到的各操作结果来确定是否通过所述进程处理所述资源。
在本申请实施例中,当业务服务器根据各锁服务器返回的各操作结果确定出该资源当前正被其他进程所占用时,也可随机等待一段时间,并在等待确定的随机时间长度后,重新向各锁服务器发送获取该资源对应的各锁的请求,其中,随机的时间范围可设定在一个合理的时间范围内,以防止随机得到的时间过长而延长该进程运行的问题出现,而具体的设定方式可以是例如预先设定一个合理的最大时间,然后再将该最大时间与一个0到1的随机数进行相乘,得到随机时间长度,当然,确定随机时间长度也可由其他的方式来实现,在此就不进行详细说明了。
另外,在实际应用中,除了因锁服务器出现故障而导致向业务服务器返回操作失败的情况发生外,锁服务器和业务服务器之间出现通信故障也将导致无法获取锁的情况发生,因此,对于这种情况来说,业务服务器在向锁服务器发送获取上述资源对应的各锁的请求时,若业务服务器和锁服务器之间出现了通信故障,则业务服务器将无法将这一请求发送至锁服务器,或是即使锁服务器与业务服务器在出现通信故障之前,锁服务器接收到了业务服务器发送的获取锁的请求,则当锁服务器与业务服务器出现通信故障时,锁服务器也将无法将操作结果返回给业务服务器,因此,对于这种情况来说,业务服务器向各锁服务器发送的获取锁的请求的数量将大于各锁服务器向业务服务器返回的操作结果的数量,但是,即使一部分锁服务器与业务服务器之间出现了通信故障,业务服务器依然可以根据接收到的各操作结果来确定是否通过所述进程处理所述资源,具体的确定方式可以参照表1的方式来进行,在此就不再进行详细赘述了。
以上为本申请实施例提供的资源处理的方法,基于同样的思路,本申请实施例还提供一种资源处理的装置,如图2所示。
图2为本申请实施例提供的一种资源处理的装置结构示意图,具体包括:
确定模块201,用于确定进程所需的资源;
发送模块202,用于根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中,所述各锁服务器至少包含两个锁服务器;
接收模块203,用于接收所述各锁服务器根据所述请求返回的各操作结果;
处理模块204,用于当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的锁服务器。
所述处理模块204还用于,当通过所述接收模块203接收到的各操作结果均为获取成功时,通过所述进程获取并处理所述资源;
所述处理模块204还用于,当通过所述接收模块203接收到的各操作结果中包含冲突操作结果或均为操作失败时,不通过所述进程获取并处理所述资源,其中,返回操作结果为冲突操作结果的锁服务器为:已将所述资源对应的锁分配给其他进程的锁服务器。
所述处理模块204还用于,当通过所述接收模块203接收到的各操作结果中包含冲突操作结果时,将通过所述进程获取到的所述资源对应的锁释放;等待设定时间长度后,指示所述发送模块202重新向各锁服务器发送获取所述资源对应的各锁的请求。
所述处理模块204还用于,随机确定时间长度;等待随机确定的所述时间长度后,指示所述发送模块202重新向各锁服务器发送获取所述资源对应的各锁的请求。
上述说明的业务服务器和各锁服务器也可位于一个系统中,如图3所示。
图3为本申请实施例提供的一种资源处理的系统的示意图,具体包括:
业务服务器301和至少两个锁服务器302;
所述业务服务器301,用于确定进程所需的资源,根据所述资源,向每个锁服务器302发送获取所述资源对应的锁的请求,接收各锁服务器302根据所述请求返回的各操作结果,当部分操作结果为操作失败,且,另一部分操作结果为获取成功时,通过所述进程获取并处理所述资源;
所述锁服务器302,用于接收所述业务服务器301发送的获取所述资源对应的锁的请求,根据所述请求向所述业务服务器301返回操作结果,其中,当所述资源的锁未分配给其他进程时,则将所述资源对应的锁返回给所述业务服务器301,当所述锁服务器302出现故障时,则向所述业务服务器301返回操作失败。
所述业务服务器301还用于,当接收到的各操作结果均为获取锁成功时,通过所述进程获取并处理所述资源;当接收到的各操作结果中包含冲突操作结果或均为操作失败时,不通过所述进程获取并处理所述资源;
所述锁服务器302还用于,当接收所述业务服务器301发送的获取所述资源对应的锁的请求后,确定所述资源对应的锁分配给其他进程时,则向所述业务服务器301返回冲突操作结果。
本申请实施例提供一种资源处理的方法、装置及系统,该方法中业务服务器在确定出进程所需的资源后,可根据该资源,向各锁服务器发送获取该资源对应的各锁的请求,相应的,业务服务器可接收各锁服务器根据该请求返回的各操作结果,其中,当返回的部分操作结果为操作失败,且另一部分操作结果为获取成功时,则可通过该进程获取并处理所述资源。从上述方法中可以看出,由于业务服务器可从至少两个锁服务器中获取该进程所需的锁,因此,即使一个锁服务器出现了运行故障,其他锁服务器也能够向该进程分配锁,进而有效的保证了该进程的正常运行,提高了业务服务器的业务处理效率。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种资源处理的方法,其特征在于,包括:
确定进程所需的资源;
根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中,所述各锁服务器至少包含两个锁服务器;
接收所述各锁服务器根据所述请求返回的各操作结果;
当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的锁服务器。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到的各操作结果均为获取锁成功时,通过所述进程获取并处理所述资源;
当接收到的各操作结果中包含冲突操作结果或者均为操作失败时,不通过所述进程获取并处理所述资源,其中,返回操作结果为冲突操作结果的锁服务器为:已将所述资源对应的锁分配给其他进程的锁服务器。
3.如权利要求2所述的方法,其特征在于,当接收到的各操作结果中包含冲突操作结果时,所述方法还包括:
将通过所述进程获取到的所述资源对应的锁释放;
等待设定时间长度后,重新向各锁服务器发送获取所述资源对应的各锁的请求。
4.如权利要求3所述的方法,其特征在于,等待设定时间长度后,重新向各锁服务器发送获取所述资源对应的各锁的请求,具体包括:
随机确定时间长度;
等待随机确定的所述时间长度后,重新向各锁服务器发送获取所述资源对应的各锁的请求。
5.一种资源处理的装置,其特征在于,包括:
确定模块,用于确定进程所需的资源;
发送模块,用于根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中,所述各锁服务器至少包含两个锁服务器;
接收模块,用于接收所述各锁服务器根据所述请求返回的各操作结果;
处理模块,用于当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的锁服务器。
6.如权利要求5所述的装置,其特征在于,所述处理模块还用于,当通过所述接收模块接收到的各操作结果均为获取成功时,通过所述进程获取并处理所述资源;
所述处理模块还用于,当通过所述接收模块接收到的各操作结果中包含冲突操作结果或均为操作失败时,不通过所述进程获取并处理所述资源,其中,返回操作结果为冲突操作结果的锁服务器为:已将所述资源对应的锁分配给其他进程的锁服务器。
7.如权利要求6所述的装置,其特征在于,所述处理模块还用于,当通过所述接收模块接收到的各操作结果中包含冲突操作结果时,将通过所述进程获取到的所述资源对应的锁释放;等待设定时间长度后,指示所述发送模块重新向各锁服务器发送获取所述资源对应的各锁的请求。
8.如权利要求7所述的装置,其特征在于,所述处理模块还用于,随机确定时间长度;等待随机确定的所述时间长度后,指示所述发送模块重新向各锁服务器发送获取所述资源对应的各锁的请求。
9.一种资源处理的系统,其特征在于,所述系统包括业务服务器和至少两个锁服务器:
所述业务服务器,用于确定进程所需的资源,根据所述资源,向每个锁服务器发送获取所述资源对应的锁的请求,接收各锁服务器根据所述请求返回的各操作结果,当部分操作结果为操作失败,且,另一部分操作结果为获取成功时,通过所述进程获取并处理所述资源;
所述锁服务器,用于接收所述业务服务器发送的获取所述资源对应的锁的请求,根据所述请求向所述业务服务器返回操作结果,其中,当所述资源的锁未分配给其他进程时,则将所述资源对应的锁返回给所述业务服务器,当所述锁服务器出现故障时,则向所述业务服务器返回操作失败。
10.如权利要求9所述的系统,其特征在于,所述业务服务器还用于,当接收到的各操作结果均为获取锁成功时,通过所述进程获取并处理所述资源;当接收到的各操作结果中包含冲突操作结果或均为操作失败时,不通过所述进程获取并处理所述资源;
所述锁服务器还用于,当接收所述业务服务器发送的获取所述资源对应的锁的请求后,确定所述资源对应的锁分配给其他进程时,则向所述业务服务器返回冲突操作结果。
CN201610381984.1A 2016-06-01 2016-06-01 一种资源处理的方法、装置及系统 Active CN106095594B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610381984.1A CN106095594B (zh) 2016-06-01 2016-06-01 一种资源处理的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610381984.1A CN106095594B (zh) 2016-06-01 2016-06-01 一种资源处理的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN106095594A true CN106095594A (zh) 2016-11-09
CN106095594B CN106095594B (zh) 2019-09-27

Family

ID=57446971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610381984.1A Active CN106095594B (zh) 2016-06-01 2016-06-01 一种资源处理的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106095594B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901933A (zh) * 2019-01-18 2019-06-18 口碑(上海)信息技术有限公司 业务系统的操作方法及装置、存储介质、电子装置
CN110580232A (zh) * 2018-06-08 2019-12-17 杭州宏杉科技股份有限公司 一种锁管理的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276568A (zh) * 1999-06-04 2000-12-13 网络装置公司 多协议统一文件锁定
US7313557B1 (en) * 2002-03-15 2007-12-25 Network Appliance, Inc. Multi-protocol lock manager
CN103294728A (zh) * 2012-03-05 2013-09-11 阿里巴巴集团控股有限公司 一种数据处理方法及系统
CN104113587A (zh) * 2014-06-23 2014-10-22 华中科技大学 一种分布式文件系统客户端元数据缓存优化方法
CN105208124A (zh) * 2015-09-29 2015-12-30 华为技术有限公司 管理锁的方法及装置、确定锁管理服务器的方法及装置
CN105278922A (zh) * 2015-09-29 2016-01-27 新浪网技术(中国)有限公司 一种数据分发方法、系统及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276568A (zh) * 1999-06-04 2000-12-13 网络装置公司 多协议统一文件锁定
US7313557B1 (en) * 2002-03-15 2007-12-25 Network Appliance, Inc. Multi-protocol lock manager
CN103294728A (zh) * 2012-03-05 2013-09-11 阿里巴巴集团控股有限公司 一种数据处理方法及系统
CN104113587A (zh) * 2014-06-23 2014-10-22 华中科技大学 一种分布式文件系统客户端元数据缓存优化方法
CN105208124A (zh) * 2015-09-29 2015-12-30 华为技术有限公司 管理锁的方法及装置、确定锁管理服务器的方法及装置
CN105278922A (zh) * 2015-09-29 2016-01-27 新浪网技术(中国)有限公司 一种数据分发方法、系统及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580232A (zh) * 2018-06-08 2019-12-17 杭州宏杉科技股份有限公司 一种锁管理的方法及装置
CN109901933A (zh) * 2019-01-18 2019-06-18 口碑(上海)信息技术有限公司 业务系统的操作方法及装置、存储介质、电子装置
CN109901933B (zh) * 2019-01-18 2022-02-25 口碑(上海)信息技术有限公司 业务系统的操作方法及装置、存储介质、电子装置

Also Published As

Publication number Publication date
CN106095594B (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
US10949447B2 (en) Blockchain-based data synchronizing and data block parsing method and device
US11586673B2 (en) Data writing and reading method and apparatus, and cloud storage system
CN111091429B (zh) 电子票据标识分配方法及装置、电子票据生成系统
CN106155780B (zh) 一种基于时间的节点选举方法及装置
JP6716727B2 (ja) ストリーミングデータ分散処理方法及び装置
CN104753994A (zh) 基于集群服务器系统的数据同步方法及其装置
CN111885050B (zh) 基于区块链网络的数据存储方法、装置、相关设备及介质
CN111698315B (zh) 针对区块的数据处理方法、数据处理装置及计算机设备
CN109802986B (zh) 设备管理方法、系统、装置及服务器
CN110659905B (zh) 交易验证方法、装置、终端设备以及存储介质
CN107423942A (zh) 一种业务流转的方法及装置
CN110162344A (zh) 一种隔离限流的方法、装置、计算机设备及可读存储介质
CN115757611A (zh) 大数据集群切换方法、装置、电子设备及存储介质
CN106095594A (zh) 一种资源处理的方法、装置及系统
CN114070847B (zh) 服务器的限流方法、装置、设备及存储介质
CN115686346A (zh) 一种数据存储方法、设备及计算机可读存储介质
US20080250421A1 (en) Data Processing System And Method
CN108021597B (zh) 一种并行计数器、服务器和一种计数方法
CN106789272A (zh) 一种服务器集群管理方法及系统
CN113190347A (zh) 一种边缘云系统及任务管理方法
CN113760651B (zh) 区块链的主子链运行状态收集方法、系统及存储介质
CN112486726A (zh) 一种用于区块链的时光回滚方法及系统
CN102868594A (zh) 一种消息处理方法和装置
EP3411792B1 (en) Method for sending a plurality of data from a server to a plurality of devices
CN114860390B (zh) 容器数据管理方法、装置、程序产品、介质及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20161109

Assignee: XINGCHAO SHANYAO MOBILE NETWORK TECHNOLOGY (CHINA) Co.,Ltd.

Assignor: SINA.COM TECHNOLOGY (CHINA) Co.,Ltd.

Contract record no.: X2021990000288

Denomination of invention: A resource processing method, device and system

Granted publication date: 20190927

License type: Common License

Record date: 20210519

EE01 Entry into force of recordation of patent licensing contract
TR01 Transfer of patent right

Effective date of registration: 20230320

Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Patentee after: Sina Technology (China) Co.,Ltd.

Address before: 100080, International Building, No. 58 West Fourth Ring Road, Haidian District, Beijing, 20 floor

Patentee before: Sina.com Technology (China) Co.,Ltd.

TR01 Transfer of patent right