一种资源处理的方法、装置及系统的制作方法

文档序号:10724726阅读:465来源:国知局
一种资源处理的方法、装置及系统的制作方法
【专利摘要】本申请实施例提供一种资源处理的方法、装置及系统,该方法中业务服务器在确定出进程所需的资源后,可根据该资源,向各锁服务器发送获取该资源对应的各锁的请求,相应的,业务服务器可接收各锁服务器根据该请求返回的各操作结果,其中,当返回的部分操作结果为操作失败,且另一部分操作结果为获取成功时,则可通过该进程获取并处理所述资源。从上述方法中可以看出,由于业务服务器可从至少两个锁服务器中获取该进程所需的锁,因此,即使一个锁服务器出现了运行故障,其他锁服务器也能够向该进程分配锁,进而有效的保证了该进程的正常运行,提高了业务服务器的业务处理效率。
【专利说明】
一种资源处理的方法、装置及系统
技术领域
[0001] 本申请涉及计算机技术领域,尤其涉及一种资源处理的方法、装置及系统。
【背景技术】
[0002] 随着网络技术的不断发展,各种应用软件相继出现,人们可通过使用这些应用软 件来完成以往需要线下办理的各项业务,因此,这些应用软件的出现极大的提高了人们解 决日常问题的能力,为人们的日常生活带来了方便。
[0003] 在实际应用中,用户在使用应用软件来进行业务处理时,通常可在自己所持有的 诸如电脑、智能手机、平台电脑等智能终端中安装的该应用软件上进行操作,进而生成用于 业务处理的业务请求,并通过终端将该业务请求发送至处理该业务请求的业务服务器中, 而业务服务器在接收到该业务请求后,可根据该业务请求,生成一个用于处理该业务请求 的进程,进而在后续过程中,通过运行该进程的方式来完成该业务请求的处理工作,并将得 到的处理结果返回给用户。在此过程中,该进程可能需要对服务器中的一些数据进行操作, 但是,服务器中的数据通常都是共用的,换句话来说,不同的进程可能都会对同一数据进行 操作,若该进程在操作服务器中某一数据的过程中,其他进程也同时对该数据进行了操作, 则该进程所操作的数据则可能会因为其他进程的操作而发生更改,从而给该进程的运行带 来了影响。
[0004]为此,当前通常都是采用一种锁机制来保证进程对数据进行操作的过程中数据的 唯一性。具体的,进程在对服务器中的某一数据进行操作之前,可从锁服务器(即向各进程 分配锁的服务器)中获取锁,进而通过该锁将该数据进行锁定,这样一来,由于该数据已经 被该进程获取的锁进行了锁定,因此,该数据在被锁定的期间,只有该进程才能对它进行操 作,而其他进程只有等到该进程运行结束并将该锁释放后,才能陆续对该数据进行操作。因 此,锁机制有效的保证了进程在进行数据操作时,数据的唯一性。
[0005] 然而,在实际应用中,进程获取到的锁通常都是由一台锁服务器提供的,倘若进程 在获取锁的过程中,该锁服务器出现了运行异常等状况,则该进程通常只能进行等待,直到 锁服务器恢复正常运行并向该进程提供锁后,才能进行后续的工作,因此,当锁服务器出现 问题时,将极大的降低业务服务器中进程的运行效率,继而降低了业务服务器处理业务的 效率。

【发明内容】

[0006] 本申请实施例提供一种资源处理的方法、装置及系统,用以解决现有技术中因锁 服务器出现故障而导致业务服务器的业务处理效率降低的问题。
[0007] 本申请实施例提供的一种资源处理的方法,包括:
[0008] 确定进程所需的资源;
[0009] 根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中,所述各 锁服务器至少包含两个锁服务器;
[0010] 接收所述各锁服务器根据所述请求返回的各操作结果;
[0011] 当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过所述进 程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的锁服务 器。
[0012] 本申请实施例提供的一种资源处理的装置,包括:
[0013] 确定模块,用于确定进程所需的资源;
[0014] 发送模块,用于根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请 求,其中,所述各锁服务器至少包含两个锁服务器;
[0015] 接收模块,用于接收所述各锁服务器根据所述请求返回的各操作结果;
[0016] 处理模块,用于当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功 时,通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现 故障的锁服务器。
[0017] 本申请实施例提供的一种资源处理的系统,包括:
[0018] 业务服务器和至少两个锁服务器;
[0019] 业务服务器,用于确定进程所需的资源,根据所述资源,向每个锁服务器发送获取 所述资源对应的锁的请求,接收各锁服务器根据所述请求返回的各操作结果,当部分操作 结果为操作失败,且,另一部分操作结果为获取成功时,通过所述进程获取并处理所述资 源;
[0020] 锁服务器,用于接收所述业务服务器发送的获取所述资源对应的锁的请求,根据 所述请求向所述业务服务器返回操作结果,其中,当所述资源的锁未分配给其他进程时,则 将所述资源对应的锁返回给所述业务服务器,当所述锁服务器出现故障时,则向所述业务 服务器返回操作失败。
[0021] 本申请实施例提供一种资源处理的方法、装置及系统,该方法中业务服务器在确 定出进程所需的资源后,可根据该资源,向各锁服务器发送获取该资源对应的各锁的请求, 相应的,业务服务器可接收各锁服务器根据该请求返回的各操作结果,其中,当返回的部分 操作结果为操作失败,且另一部分操作结果为获取成功时,则可通过该进程获取并处理所 述资源。从上述方法中可以看出,由于业务服务器可从至少两个锁服务器中获取该进程所 需的锁,因此,即使一个锁服务器出现了运行故障,其他锁服务器也能够向该进程分配锁, 进而有效的保证了该进程的正常运行,提高了业务服务器的业务处理效率。
【附图说明】
[0022] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申 请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0023] 图1为本申请实施例提供的资源处理的详细过程;
[0024] 图2为本申请实施例提供的一种资源处理的装置结构示意图;
[0025]图3为本申请实施例提供的一种资源处理的系统的示意图。
【具体实施方式】
[0026]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及 相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一 部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0027]图1为本申请实施例提供的资源处理的详细过程,具体包括以下步骤:
[0028] S101:确定进程所需的资源。
[0029] 在实际应用中,进程在运行的过程中,通常都需要对该进程所需的资源进行一定 的处理,继而才能完成该进程的运行,而通常情况下,进程所处理的资源通常都是共用的, 即,不同的进程在运行时可能都需要对同一资源进行处理,然而,一个进程在对某一资源处 理的过程中,其他进程也对该资源进行了处理,则由于该资源会被不同的进程同时进行处 理,因此,这两个进程同时对该资源的处理也将会对彼此造成影响,继而使得这两个进程可 能都会出现运行不良的状况。因此,为避免这一情况的发生,在现有技术中,通常都会采用 一种锁机制来将进程所需的资源进行锁定,该资源在锁定的过程中,其他进程将无法对该 资源进行操作,这样一来,该进程在对该资源的操作过程中,该资源将不会受到其他进程运 行的影响,从而有效的保证了该进程的正常运行。
[0030] 而业务服务器中的进程在对该进程所需的资源进行处理之前,需要向获取能够锁 定该资源的锁,因此,在本申请实施例中,该进程在对所需的资源进行处理之前,可先向能 够向该进程分配锁的锁服务器获取该资源对应的锁,进而在获取到该资源对应的锁后,再 获取该资源并处理。而在此之前,业务服务器可先接收用户通过所持的终端发送的业务请 求,而后,通过解析该业务请求来生成处理该业务请求的一个进程,业务服务器在生成该进 程后,可进一步的确定出该进程所需的资源,进而在后续过程中,通过确定出的该进程所需 的资源,向锁服务器发送获取该资源所对应的锁的请求,其中,这里提到的终端可以是电 脑、智能手机、平板电脑等终端设备。
[0031] S102:根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中, 所述各锁服务器至少包含两个锁服务器。
[0032] 在实际应用中,锁服务器可对不同的资源分别设置各个锁并存储,后续在接收到 业务服务器发送的获取锁的请求后,可根据业务服务器发送的请求中包含的资源标识,确 定出该进程所要获取的资源,进而将该资源对应的锁返回给进程,而由于本申请实施例意 在解决一个锁服务器在出现故障时将导致业务服务器业务处理效率降低的问题,因此,在 本申请实施例中,可预先设置不同的锁服务器向业务服务器进行锁分配,其中,各锁服务器 可针对同一资源分别设置不同的锁并存储,而后,各锁服务器可将各自存储的对应该资源 的锁的标识分别发送给业务服务器,业务服务器在接收到各锁的标识后,可将各标识进行 存储,例如,建立一个该资源与各锁标识对应的表并存储,后续业务服务器在从各锁服务器 获取该资源对应的各锁时,则可根据先前存储的各锁的标识,依次向各锁服务器发送获取 该资源对应的各锁的请求,其中,为了要保证在一个锁服务器出现故障的情况下,该进程依 然能从其他锁服务器获取到能够锁定该资源的锁,因此,在本申请实施例中,锁服务器应至 少为两个,这样,当一个锁服务器出现故障时,另一个锁服务器依然能够保证向该业务服务 器中的该进程分配该进程所需资源对应的锁,从而在一定程度上保证了该进程的顺利运 行,当然,锁服务器也可设置的较多一些,进而可尽可能的降低因锁服务器出现故障而导致 的业务服务器中进程无法正常运行的情况发生。
[0033] 需要说明的是,上述提到的各锁服务器并不一定是一个专门用于向业务服务器中 各进程分配锁的服务器,这些锁服务器可以是已存在的服务器,如,其他的业务服务器,专 门存储数据的服务器等,为了使这些服务器能够向业务服务器的进程分配锁,可事先对这 些服务器进行一定的改进,如,可在这些服务器中集成一些功能模块,使这些服务器能够变 成具有向该业务服务器中的进程分配锁功能的锁服务器,当然也可采用其他的方法来使一 些服务器具备向业务服务器分配锁的功能,在此就不进行一一举例说明了。
[0034] S103:接收所述各锁服务器根据所述请求返回的各操作结果。
[0035] 各锁服务器在接收到业务服务器发送的获取该资源对应的各锁的请求后,将根据 该资源对应的各锁的使用情况,向业务服务器返回各锁对应的各操作结果,相应的,后续业 务服务器的该进程在接收到各锁服务器返回的各操作结果后,可根据返回的各操作结果, 确定是否对该进程所需的资源进行处理。
[0036] 具体的,在本申请实施例中,该进程在对所需的资源进行操作之前,需要从各锁服 务器中获取到该资源对应的各锁,并当获取到各锁后,再对该资源进进行处理,然而,各锁 服务器的运行状况有时并不是完全相同的,即,在同一时刻,有的锁服务器可能出现了运行 故障,而有的锁服务器则依然正常运行,而为了保证业务服务器中进程的正常运行,当一部 分锁服务器出现故障时,该进程依然能够从其他的锁服务器获取该进程所需资源的各锁, 进而在获取到各锁后,对该资源进行处理,但是,倘若一个进程在从一部分锁服务器获取到 该进程所需资源对应的各锁后,另一部分的锁服务器又恢复了正常的运行状态,则后续其 他进程需要从锁服务器中获取该资源对应的锁时,这部分恢复正常的锁服务器将向该其他 进程分配该资源对应的各锁,这样一来,由于两个进程都从各锁服务器获取到了该资源所 对应的锁,因此,这两个进程将会同时对该资源进行处理,进而使得这两个进程可能都将无 法正常运行。
[0037] 为了避免上述情况的发生,业务服务器中的进程在向各锁服务器获取该进程所需 资源对应的各锁时,需要依次向各锁服务器发送获取该资源对应的各锁的请求,这样一来, 各锁服务器在接收到业务服务器发送的各请求后,也将分别向业务服务器返回各锁的操作 结果,进而,后续该业务服务器的进程可根据各锁服务器返回的各操作结果,确定出该资源 对应的各锁的使用情况,进而确定出是否对该资源进行处理。
[0038] S104:当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过 所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的 锁服务器。
[0039]业务服务器在获取到各锁服务器返回的各操作结果后,可根据各操作结果,进一 步的确定出是否通过该进程获取并处理该资源,其中,由于各锁服务器的运行状况并不是 完全相同的,因此,各锁服务器向业务服务器返回的对应各锁的各操作结果可能也将是不 同的,当各锁服务器均处于正常运行时,则事先在没有其他进程获取该资源对应的各锁的 情况下,各锁服务器将根据业务服务器发送的获取该资源对应的各锁的请求,分别将该资 源对应的各锁返回给该业务服务器,即,该业务服务器将从各锁服务器中对应该资源的各 锁全部获取到,而当这些锁服务器中,一部分出现了故障,而另一部分依旧正常运行,则业 务服务器将从运行正常的锁服务器获取到该资源对应的各锁,而由于本申请实施例意在保 证即使一个锁服务器出现了故障,业务服务器依然能够从其他锁服务器中获取到该资源所 对应的锁,进而保证该进程的正常运行,因此,业务服务器从一部分运行正常的锁服务器获 取到该资源对应的各锁,而并未从出现运行故障的另一部分锁服务器中获取该资源对应的 各锁后,业务服务器可认定成功的获取了该资源对应的锁,继而通过业务服务器中的该进 程处理该资源,从而有效的保证了该进程的正常运行,提高了业务服务器在进行业务处理 时的效率。
[0040] 当然,各锁服务器向业务服务器返回的各操作结果中除了包含有获取锁成功或是 操作失败这两种结果外,还可能包含有其他进程已经获取到锁的操作结果,出现这一操作 结果是因为,在实际应用中,当各锁服务器中的一部分锁服务器出现了故障,而另一部分的 锁服务器依然正常运行时,业务服务器可从运行正常的这部分锁服务器中获取到各锁,继 而确定通过该进程对应该资源进行处理,然而,在经过一段时间后,出现故障的这部分锁服 务器恢复了正常,则后续的其他进程在向各锁服务器获取该资源对应的各锁时,则将会从 先前出现故障的这部分锁服务器中成功获取到该资源对应的锁,而对于先前已经将该资源 对应的各锁分配给该进程的锁服务器(即先前运行正常的锁服务器)来说,这些锁服务器将 向该其他进程返回锁已被分配的操作结果,即,冲突操作结果,这时,业务服务器可得知虽 然已从一部分锁服务器获取到了该资源对应的各锁,但是,有一部分锁服务器事先已将该 资源对应的锁分配给了其他进程,因此,业务服务器将进一步的确定出当前正有一个其他 进程对该资源进行处理,相应的,为保证正在处理该资源的其他进程能够正常运行,该业务 服务器将不通过该进程处理该资源,同时,将从一部分锁服务器中获取到的该资源对应的 各锁进行释放,并在等待设定时间长度后,重新向各锁服务器发送获取该资源对应的各锁 的请求。
[0041] 例如,假设业务服务器在接收到用户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并处理。
[0042]由此可以看出,业务服务器从各锁服务器获取到的操作结果基本上可以分为三种 结果,即,当锁服务器运行正常且没有将该资源对应的锁分配给其他进程时,业务服务器将 从锁服务器获取到的操作结果为获取锁成功,而当锁服务器运行正常,但是已将该资源对 应的锁分配给了其他进程时,业务服务器将从锁服务器获取到的操作结果为冲突操作结 果,当锁服务器出现故障时,业务服务器将从锁服务器获取到的操作结果为操作失败。相应 的,业务服务器接收到的各锁服务器返回的操作结果中可能只包含有一种操作结果,或是 可能包含两种操作结果,也或是三种操作结果都包含,而业务服务器在接收到各锁服务器 返回的各操作结果后,可根据各操作结果,来确定是否通过所述进程处理所述资源,如表1 所示。
[0045] 表 1
[0046] 从表1中可以看出,当业务服务器接收到的各锁服务器返回的各操作结果中包含 有冲突操作结果时,则即使业务服务器获取到的各操作结果中还包含有操作失败或是获取 锁成功,也将不通过所述进程处理所述资源,而当业务服务器接收到的各操作结果中一部 分为操作失败,而另一部分为获取锁成功时,则业务服务器可通过所述进程处理所述资源, 因此,从上述方法中可以看出,即使一个锁服务器出现了故障而无法向业务服务器返回该 资源对应的锁,业务服务器也可从其他正常运行的锁服务器中获取到该资源对应的锁,从 而有效的保证了该进程的顺利运行,进而提高了业务服务器业务处理的效率。
[0047] 需要说明的是,上述说明的锁服务器出现故障的情况并不是锁服务器完全无法运 行的情况,而是指锁服务器向业务服务器的进程提供锁的功能出现了故障,这样一来,当锁 服务器接收到了业务服务器发送的获取所述资源对应的锁的请求后,锁服务器可得知当前 自身的向业务服务器的进程分配锁的功能出现了故障,继而向业务服务器返回的操作结果 即为操作失败。当然,当锁服务器完全无法运行时,锁服务器即使接收到了业务服务器发送 的获取锁的请求,锁服务器可能也将无法响应该请求,因此,对于这种情况来说,当锁服务 器完全出现故障时,业务服务器将无法接收到该锁服务器返回的操作结果,但是,由于其他 运行正常或仅是分配锁功能出现故障的锁服务器依然可以向业务服务器返回各操作结果, 因此,业务服务器可根据接收到的各操作结果来确定是否通过所述进程处理所述资源。
[0048] 在本申请实施例中,当业务服务器根据各锁服务器返回的各操作结果确定出该资 源当前正被其他进程所占用时,也可随机等待一段时间,并在等待确定的随机时间长度后, 重新向各锁服务器发送获取该资源对应的各锁的请求,其中,随机的时间范围可设定在一 个合理的时间范围内,以防止随机得到的时间过长而延长该进程运行的问题出现,而具体 的设定方式可以是例如预先设定一个合理的最大时间,然后再将该最大时间与一个〇到1的 随机数进行相乘,得到随机时间长度,当然,确定随机时间长度也可由其他的方式来实现, 在此就不进行详细说明了。
[0049] 另外,在实际应用中,除了因锁服务器出现故障而导致向业务服务器返回操作失 败的情况发生外,锁服务器和业务服务器之间出现通信故障也将导致无法获取锁的情况发 生,因此,对于这种情况来说,业务服务器在向锁服务器发送获取上述资源对应的各锁的请 求时,若业务服务器和锁服务器之间出现了通信故障,则业务服务器将无法将这一请求发 送至锁服务器,或是即使锁服务器与业务服务器在出现通信故障之前,锁服务器接收到了 业务服务器发送的获取锁的请求,则当锁服务器与业务服务器出现通信故障时,锁服务器 也将无法将操作结果返回给业务服务器,因此,对于这种情况来说,业务服务器向各锁服务 器发送的获取锁的请求的数量将大于各锁服务器向业务服务器返回的操作结果的数量,但 是,即使一部分锁服务器与业务服务器之间出现了通信故障,业务服务器依然可以根据接 收到的各操作结果来确定是否通过所述进程处理所述资源,具体的确定方式可以参照表1 的方式来进行,在此就不再进行详细赘述了。
[0050] 以上为本申请实施例提供的资源处理的方法,基于同样的思路,本申请实施例还 提供一种资源处理的装置,如图2所示。
[0051] 图2为本申请实施例提供的一种资源处理的装置结构示意图,具体包括:
[0052]确定模块201,用于确定进程所需的资源;
[0053]发送模块202,用于根据所述资源,向各锁服务器发送获取所述资源对应的各锁的 请求,其中,所述各锁服务器至少包含两个锁服务器;
[0054]接收模块203,用于接收所述各锁服务器根据所述请求返回的各操作结果;
[0055]处理模块204,用于当部分操作结果为操作失败,且,另一部分操作结果为获取锁 成功时,通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为 出现故障的锁服务器。
[0056]所述处理模块204还用于,当通过所述接收模块203接收到的各操作结果均为获取 成功时,通过所述进程获取并处理所述资源;
[0057]所述处理模块204还用于,当通过所述接收模块203接收到的各操作结果中包含冲 突操作结果或均为操作失败时,不通过所述进程获取并处理所述资源,其中,返回操作结果 为冲突操作结果的锁服务器为:已将所述资源对应的锁分配给其他进程的锁服务器。
[0058]所述处理模块204还用于,当通过所述接收模块203接收到的各操作结果中包含冲 突操作结果时,将通过所述进程获取到的所述资源对应的锁释放;等待设定时间长度后,指 示所述发送模块202重新向各锁服务器发送获取所述资源对应的各锁的请求。
[0059] 所述处理模块204还用于,随机确定时间长度;等待随机确定的所述时间长度后, 指示所述发送模块202重新向各锁服务器发送获取所述资源对应的各锁的请求。
[0060] 上述说明的业务服务器和各锁服务器也可位于一个系统中,如图3所示。
[0061] 图3为本申请实施例提供的一种资源处理的系统的示意图,具体包括:
[0062] 业务服务器301和至少两个锁服务器302;
[0063]所述业务服务器301,用于确定进程所需的资源,根据所述资源,向每个锁服务器 302发送获取所述资源对应的锁的请求,接收各锁服务器302根据所述请求返回的各操作结 果,当部分操作结果为操作失败,且,另一部分操作结果为获取成功时,通过所述进程获取 并处理所述资源;
[0064]所述锁服务器302,用于接收所述业务服务器301发送的获取所述资源对应的锁的 请求,根据所述请求向所述业务服务器301返回操作结果,其中,当所述资源的锁未分配给 其他进程时,则将所述资源对应的锁返回给所述业务服务器301,当所述锁服务器302出现 故障时,则向所述业务服务器301返回操作失败。
[0065]所述业务服务器301还用于,当接收到的各操作结果均为获取锁成功时,通过所述 进程获取并处理所述资源;当接收到的各操作结果中包含冲突操作结果或均为操作失败 时,不通过所述进程获取并处理所述资源;
[0066]所述锁服务器302还用于,当接收所述业务服务器301发送的获取所述资源对应的 锁的请求后,确定所述资源对应的锁分配给其他进程时,则向所述业务服务器301返回冲突 操作结果。
[0067]本申请实施例提供一种资源处理的方法、装置及系统,该方法中业务服务器在确 定出进程所需的资源后,可根据该资源,向各锁服务器发送获取该资源对应的各锁的请求, 相应的,业务服务器可接收各锁服务器根据该请求返回的各操作结果,其中,当返回的部分 操作结果为操作失败,且另一部分操作结果为获取成功时,则可通过该进程获取并处理所 述资源。从上述方法中可以看出,由于业务服务器可从至少两个锁服务器中获取该进程所 需的锁,因此,即使一个锁服务器出现了运行故障,其他锁服务器也能够向该进程分配锁, 进而有效的保证了该进程的正常运行,提高了业务服务器的业务处理效率。
[0068] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网 络接口和内存。
[0069] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或 非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的 示例。
[0070] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法 或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。 计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动 态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除 可编程只读存储器(EEPR0M)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、 数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备 或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算 机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0071] 还需要说明的是,术语"包括"、"包含"或者其任何其他变体意在涵盖非排他性的 包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包 括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要 素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要 素的过程、方法、商品或者设备中还存在另外的相同要素。
[0072] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。 因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的 形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存 储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形 式。
[0073] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员 来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同 替换、改进等,均应包含在本申请的权利要求范围之内。
【主权项】
1. 一种资源处理的方法,其特征在于,包括: 确定进程所需的资源; 根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其中,所述各锁服 务器至少包含两个锁服务器; 接收所述各锁服务器根据所述请求返回的各操作结果; 当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时,通过所述进程获 取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故障的锁服务器。2. 如权利要求1所述的方法,其特征在于,所述方法还包括: 当接收到的各操作结果均为获取锁成功时,通过所述进程获取并处理所述资源; 当接收到的各操作结果中包含冲突操作结果或者均为操作失败时,不通过所述进程获 取并处理所述资源,其中,返回操作结果为冲突操作结果的锁服务器为:已将所述资源对应 的锁分配给其他进程的锁服务器。3. 如权利要求2所述的方法,其特征在于,当接收到的各操作结果中包含冲突操作结果 时,所述方法还包括: 将通过所述进程获取到的所述资源对应的锁释放; 等待设定时间长度后,重新向各锁服务器发送获取所述资源对应的各锁的请求。4. 如权利要求3所述的方法,其特征在于,等待设定时间长度后,重新向各锁服务器发 送获取所述资源对应的各锁的请求,具体包括: 随机确定时间长度; 等待随机确定的所述时间长度后,重新向各锁服务器发送获取所述资源对应的各锁的 请求。5. -种资源处理的装置,其特征在于,包括: 确定模块,用于确定进程所需的资源; 发送模块,用于根据所述资源,向各锁服务器发送获取所述资源对应的各锁的请求,其 中,所述各锁服务器至少包含两个锁服务器; 接收模块,用于接收所述各锁服务器根据所述请求返回的各操作结果; 处理模块,用于当部分操作结果为操作失败,且,另一部分操作结果为获取锁成功时, 通过所述进程获取并处理所述资源,其中,返回操作结果为操作失败的锁服务器为出现故 障的锁服务器。6. 如权利要求5所述的装置,其特征在于,所述处理模块还用于,当通过所述接收模块 接收到的各操作结果均为获取成功时,通过所述进程获取并处理所述资源; 所述处理模块还用于,当通过所述接收模块接收到的各操作结果中包含冲突操作结果 或均为操作失败时,不通过所述进程获取并处理所述资源,其中,返回操作结果为冲突操作 结果的锁服务器为:已将所述资源对应的锁分配给其他进程的锁服务器。7. 如权利要求6所述的装置,其特征在于,所述处理模块还用于,当通过所述接收模块 接收到的各操作结果中包含冲突操作结果时,将通过所述进程获取到的所述资源对应的锁 释放;等待设定时间长度后,指示所述发送模块重新向各锁服务器发送获取所述资源对应 的各锁的请求。8. 如权利要求7所述的装置,其特征在于,所述处理模块还用于,随机确定时间长度;等 待随机确定的所述时间长度后,指示所述发送模块重新向各锁服务器发送获取所述资源对 应的各锁的请求。9. 一种资源处理的系统,其特征在于,所述系统包括业务服务器和至少两个锁服务器: 所述业务服务器,用于确定进程所需的资源,根据所述资源,向每个锁服务器发送获取 所述资源对应的锁的请求,接收各锁服务器根据所述请求返回的各操作结果,当部分操作 结果为操作失败,且,另一部分操作结果为获取成功时,通过所述进程获取并处理所述资 源; 所述锁服务器,用于接收所述业务服务器发送的获取所述资源对应的锁的请求,根据 所述请求向所述业务服务器返回操作结果,其中,当所述资源的锁未分配给其他进程时,则 将所述资源对应的锁返回给所述业务服务器,当所述锁服务器出现故障时,则向所述业务 服务器返回操作失败。10. 如权利要求9所述的系统,其特征在于,所述业务服务器还用于,当接收到的各操作 结果均为获取锁成功时,通过所述进程获取并处理所述资源;当接收到的各操作结果中包 含冲突操作结果或均为操作失败时,不通过所述进程获取并处理所述资源; 所述锁服务器还用于,当接收所述业务服务器发送的获取所述资源对应的锁的请求 后,确定所述资源对应的锁分配给其他进程时,则向所述业务服务器返回冲突操作结果。
【文档编号】G06F9/52GK106095594SQ201610381984
【公开日】2016年11月9日
【申请日】2016年6月1日 公开号201610381984.1, CN 106095594 A, CN 106095594A, CN 201610381984, CN-A-106095594, CN106095594 A, CN106095594A, CN201610381984, CN201610381984.1
【发明人】黄旭
【申请人】新浪网技术(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1