一种基于分布式应用的租约数据的发送及获取方法、装置与流程

文档序号:12278826阅读:431来源:国知局
一种基于分布式应用的租约数据的发送及获取方法、装置与流程

本发明涉及互联网技术领域,特别涉及一种基于分布式应用的租约数据的发送方法和获取方法,以及发送装置及获取装置。



背景技术:

在分布式应用场景中,存在较为复杂的应用场景,比如具有发红包、广告投放量分发或金额派量等功能的资源调度。通常针对具有此类功能的资源调度,领域内现有采用如重写mysql引擎、增加分发机的硬件配置、半自动热备等方式,然而该些方式过于重量级,不但成本过高还需要人工干预。

上述资源调度通常是全网服务需要同时消费同一份数据的条件下,为保证用户体检和服务性能,会将一份数据切分为多份,分发给很多台服务器同时进行消费;作为负责分发的服务器则显得犹为重要,因为数据只有一份,容易产生单点故障或多机同时服务下的脑裂问题。一旦负责分发的服务器出现故障无法正常提供服务,将会影响整个分布应用场景中的用户体验并且损害的商业利益。

所以针对此种情况,如何实现一种低成本的多机自动运行时热备功能,解决单点故障以及避免脑裂问题,全程无需人工干预,降低由于单点问题带来的商业损失。



技术实现要素:

本发明提供一种基于分布式应用的租约数据的发送方法、获取方法以及发送装置、获取装置,以解决上述问题。

本发明提供了一种基于分布式应用的租约数据的发送方法,包括:

建立具有租约机制的缓存结构;

接收服务器的注册请求,选取满足注册条件的服务器作为主服务器,并发送所述租约机制中租约数据至所述主服务器,授权所述主服务器提供数据服务;

接收所述主服务器的续约请求,判断所述主服务器是否满足续约条件,若满足,则续约成功,继续提供数据服务;若不满足,则续约失败,进入所述接 收服务器注册请求的步骤。

优选地,所述接收服务器的注册请求,选取满足注册条件的服务器作为主服务器,包括:

记录接收所述注册请求的时间;

比较所述注册请求的时间,允许接收时间值最小的服务器注册成功。

优选地,所述建立具有租约机制的缓存结构,包括:建立租约机制的租约锁,租约锁期限以及租约锁地址并缓存相对应的租约数据。

优选地,所述接收所述主服务器的续约请求,判断所述主服务器是否满足续约条件,包括:

比较接收所述续约请求的时间是否小于租约锁期限,若是,则续约成功,若否,则续约失败。

优选地,所述接收所述主服务器的续约请求,判断所述主服务器是否满足续约条件,包括:

比较所述续约请求接收时间是否与在建立租约机制时预先设定的续约时间相匹配,若是,则续约成功,若否,则续约失败。

优选地,所述授权所述主服务器提供数据服务之后,包括:

根据在所述租约机制中预先设定的重新注册请求时间,接收来自除所述主服务器以外的服务器的重新注册请求;

判断所述重新注册请求是否满足重新注册请求条件,若满足,则判断所述租约机制是否存在授权的所述主服务器,若是,则返回重新注册失败,若否,则执行所述选取满足重新注册成功条件的服务器作为主服务器的步骤;若不满足,则返回重新注册失败。

优选地,所述判断所述重新注册请求是否满足重新注册成功条件,包括:

比较所述重新注册请求的接收时间是否介于所述预先设定续约时间和所述租约锁期限之间。

优选地,所述预先设定的续约时间为,获得所述租约数据后设定的时间值。

本发明提供了一种基于分布式应用的租约数据的发送装置,包括:

缓存结构建立单元,用于建立具有租约机制的缓存结构;

数据服务授权单元,用于接收服务器的注册请求,选取满足注册条件的服 务器作为主服务器,并发送所述租约机制中租约数据至所述主服务器,授权所述主服务器提供数据服务;

续约请求单元,用于接收所述主服务器的续约请求,判断所述主服务器是否满足续约条件,若满足,则续约成功,继续提供数据服务;若不满足,则续约失败,进入数据服务授权单元,执行接收服务器的注册请求的步骤。

优选地,所述数据服务授权单元,包括:

记录单元,用于记录接收所述注册请求的时间;

注册比较单元,用于比较所述注册请求的时间,允许接收时间最小的服务器注册成功。

优选地,所述缓存结构建立单元包括:建立租约机制的租约锁,租约锁期限以及租约锁地址并缓存相对应的租约数据。

优选地,所述续约请求单元,包括:

续约比较单元,用于比较接收所述续约请求的时间是否小于租约锁期限,若是,则续约成功,若否,则续约失败。

优选地,所述续约请求单元,包括:

续约比较匹配单元,用于比较所述续约请求接收时间是否与在建立租约机制时预先设定的续约时间相匹配,若是,则续约成功,若否,则续约失败。

优选地,所述数据服务授权单元,包括:

重新注册请求接收单元,用于根据在所述租约机制中预先设定的重新注册请求时间,接收来自除所述主服务器以外的服务器的重新注册请求;

第一判断单元,用于所述重新注册请求是否满足重新注册成功条件,若满足,则进入第二判断单元,若不满足,则返回重新注册失败;

所述第二判断单元,用于判断所述租约机制是否存在授权的所述主服务器,若是,则返回重新注册失败,若否,则进入所述数据服务授权单元,将所述选取满足重新注册成功条件的服务器作为主服务器。

优选地,所述第一判断单元包括:

重新注册请求时间比较单元,用于比较所述重新注册请求的接收时间是否介于所述预先设定续约时间和所述租约锁期限之间。

本发明提供了一种基于分布式应用的租约数据的获取方法,包括:

在执行数据服务任务前发送注册请求;

接收来自缓存结构中的租约数据;

启动执行所述数据分发任务;

向所述缓存结构发送续约请求,并根据接收来自所述缓存结构的续约反馈数据,进入启动执行所述数据分发任务的步骤,或者进入在执行数据分发任务前发送注册请求的步骤。

优选地,所述接收来自缓存结构中的租约数据,包括:租约锁,租约锁期限以及租约锁地址。

优选地,所述向所述缓存结构发送续约请求,包括:设置发送续约请求的时间。

优选地,所述设置发送续约请求的时间介于获得所述租约数据的时间至所述租约锁期限之间。

优选地,所述启动所述数据分发任务,包括:

发送除所述主服务器以外的服务器的重新注册请求;

接收到所述租约数据的服务器重新作为主服务器,启动所述数据服务任务;或者接收重新注册请求失败的信息。

优选地,所述设置发送续约请求的时间为获得所述租约数据后设定的时间值。

本发明提供了一种基于分布式应用的租约数据的获取装置,包括:

注册请求发送单元,用于在执行数据分发任务前发送注册请求;

接收租约数据单元,用于接收来自缓存结构中的租约数据;

启动执行单元,用于启动执行所述数据分发任务;

续约请求发送单元,用于向所述缓存结构发送续约请求,并根据接收来自所述缓存结构的续约反馈数据,进入启动执行单元,或者进入注册请求发送单元。

优选地,所述接收租约数据单元中所述租约数据包括:租约锁,租约锁期限以及租约锁地址。

优选地,所述续约请求发送单元包括:

续约请求时间设置单元,用于设置发送续约请求的时间。

优选地,所述续约请求时间设置单元为介于获得所述租约数据的时间至所述租约锁期限之间的范围。

优选地,所述续约请求时间设置单元为获得所述租约数据后设定的时间值。

优选地,所述启动执行单元包括:

发送重新注册请求单元,用于发送除所述主服务器以外的服务器的重新注册请求;

数据服务单元,用于将接收到所述租约数据的服务器重新作为主服务器,进入启动所述数据分发任务,或者接收重新注册请求失败的信息。本发明提供的一种基于分布式应用的租约数据的发送方法通过将缓存结构租约机制中的租约数据发送至主服务器,主服务器根据获得的租约数据提供服务功能,并且在主服务器提供服务功能的同时,具有租约机制的缓存要根据接收到的续约请求,确定该主服务器能够在租约数据到期后仍然能够继续提供服务功能,当该主服务器一旦出现故障则无法发送续约请求,租约数据在到期后使得该主服务器失去服务功能,缓存结构则会根据收到的注册请求另选取主服务器,实现提供服务功能,因此,本发明提供的一种基于分布式应用的租约数据的发送方法,能够使服务器在执行服务功能强实现多机自动运行时热备功能,并且在低成本、高时效的基础上能够在一台服务器发生故障时,备机能秒级的接管服务,降低由于单点问题带来的商业损失,彻底解决单点故障和脑裂问题,并且全程无需人工干预。

附图说明

为了更清楚地说明本发明实施例和现有技术中的技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的一种基于分布式应用的租约数据的发送方法实施例的流程图;

图2是本发明提供的一种基于分布式应用的租约数据的发送装置实施例的结构框图;

图3是本发明提供的一种基于分布式应用的租约数据的获取方法实施例的流程图;

图4是本发明提供的一种基于分布式应用的租约数据的获取装置实施例的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。

请参考图1所示,图1是本发明提供的一种基于分布式应用的租约数据的发送方法实施例的流程图;本发明提供的一种基于分布式应用的租约数据的发送方法实施例包括:

步骤101:建立具有租约机制的缓存结构。

该步骤的具体实现过程是,在缓存服务器中建立一个具有租约数据内容的租约机制,所述租约数据可以包括:租约锁、租约锁期限以及租约锁地址,将所述租约锁、租约锁期限以及租约锁地址的数据信息存储在缓存服务器中;上述租约数据具体可以是,例如:将KEY作为租约锁的名称,VALUE为所述租约锁持有者的IP地址,以及为所述租约锁设定租约锁期限,例如:可以为N秒,也就是,在N秒后租约锁的持有者将失去该租约锁。

步骤102:接收服务器的注册请求,选取满足注册条件的服务器作为主服务器,并发送所述租约机制中租约数据至所述主服务器,授权所述主服务器提供数据服务。

该步骤中的接收服务器的注册请求,选取满足注册条件的服务器作为主服务器具体实现过程可以是,具有租约机制的缓存服务器在服务器在执行数据服务前,会接收服务器发送的注册请求;缓存服务器记录接收到所有服务器发送的所述注册请求的时间,并对记录的注册请求时间进行比较,允许接收注册请求时间值最小的服务器注册成功,并将所述注册成功的服务器作为主服务器,并在缓存服务器中存储所述主服务器的IP地址,并为所述主服务器提供租约锁,为租约锁设定的有效期限,即:租约锁的失效时间。

需要说明的是,缓存服务器根据设定的租约锁期限,在租约锁期限到期后,将删除缓存服务器中存储的所述主服务器的IP地址,所述主服务器中的租约锁为失效状态。

以上对于选取满足注册条件的服务器作为主服务器具体实现过程的一种实 现方式,可以理解的是,选取方式并不限于上述内容,还可以采用以服务器发送注册请求的时间为比较范围,通过缓存服务器对所有服务器发送的注册请求时间进行比较,选取接收到注册请求时间最早的服务器注册成功,并作为主服务器,将相应的租约数据发送至主服务器,从而使确定后的主服务器具有数据服务功能,该数据服务可以数据分发等,例如:发红包,广告投放量分发或金额派量等服务功能。

为提高缓存服务器选取满足注册条件的服务器作为主服务器,还可以在缓存服务器中租约机制内设定比较范围,例如:选取接收到注册请求后60秒内的注册请求,在选取的注册请求范围内进行比较,确定最早到达缓存服务器的注册请求。

步骤103:接收所述主服务器的续约请求,判断所述主服务器是否满足续约条件,若满足,则续约成功,继续提供数据服务;若不满足,则续约失败,进入所述接收服务器注册请求的步骤。

该步骤后的具体实现过程可以是,所述缓存服务器将租约锁发送主服务器后,缓存服务器将接收来自所述主服务器的续约请求,判断所述主服务器是否满足续约条件,该判断可以包括:

比较接收所述续约请求的时间是否小于租约锁期限,若是,则续约成功,缓存服务器中仍然保持之前主服务器的IP地址,主服务器也仍然持有获得租约锁;若否,则续约失败,所述缓存服务器将清空其之前存储的主服务器的IP地址,主服务器失去租约锁所具有的权限,也就是说主服务器的租约锁失去效力,不在具有的数据服务功能,缓存服务器进入所述接收服务器注册请求的步骤,重新确定主服务器的过程。

所述缓存服务器将租约锁发送主服务器后,缓存服务器将接收来自所述主服务器的续约请求,判断所述主服务器是否满足续约条件,该判断还可以通过下述实施方式实现,包括:

通过比较所述续约请求接收时间是否与在建立租约机制时预先设定的续约时间相匹配,若是,则续约成功,若否,则续约失败。该步骤判断结果后的执行过程与上述判断结果的执行过程相同,再次不在赘述。

可以理解的是,所述预先设定的续约时间可以为,获得所述租约数据后设定的时间值。例如:设定续约时间为N秒,该N秒小于租约锁期限,每隔N秒 缓存服务器将会收到来自持有租约锁的主服务器发送的续约请求。

为避免获得授权后的所述主服务器因故障等原因引起服务器提供服务功能受限,本申请在所述步骤102,即:接收服务器的注册请求,选取满足注册条件的服务器作为主服务器,并发送所述租约机制中租约数据至所述主服务器,授权所述主服务器提供数据服务还包括:

根据在所述租约机制中预先设定的重新注册请求时间,接收来自除所述主服务器以外的服务器的重新注册请求。

判断所述重新注册请求是否满足重新注册成功条件,若满足,则判断所述租约机制是否存在授权的所述主服务器,若是,则返回重新注册失败,若否,则执行所述选取满足重新注册成功条件的服务器作为主服务器的步骤;若不满足,则返回重新注册失败。

在上述判断所述重新注册请求是否满足重新注册请求条件步骤中,具体实现方式可以是,通过比较所述重新注册请求的接收时间是否介于所述预先设定续约时间和所述租约锁期限之间,例如:预先设定续约时间为5秒,租约锁期限为10秒,如果缓存服务器接收到的重新注册请求时间为介于6-9秒,则满足重新注册请求条件,之后缓存服务器判断所述租约机制中是否存在授权的主服务器,如果存在,则返回重新注册失败,缓存服务器等待下一次服务器发送的重新注册请求;如果不存在,选取满足重新注册请求条件的服务器作为主服务器;如果缓存服务器接收到的重新注册请求时间超出6-9秒的范围,则返回重新注册失败,进入下一轮重新注册请求。

基于上述本发明提供的一种基于分布式应用的租约数据的发送方法,与所述方法实施例相对应,本发明还提供一种基于分布式应用的租约数据的发送装置实施例,请参看图2,其为本发明提供一种基于分布式应用的租约数据的发送装置实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

如图2所示,本发明提供的一种基于分布应用的租约数据的发送装置,包括:

缓存结构建立单元201,用于建立具有租约机制的缓存结构。

所述缓存结构建立单元201包括:建立租约机制的租约锁,租约锁期限以 及租约锁地址并缓存相对应的租约数据。

数据服务授权单元202,用于接收服务器的注册请求,选取满足注册条件的服务器作为主服务器,并发送所述租约机制中租约数据至所述主服务器,授权所述主服务器提供数据服务;

其中,所述数据服务授权单元202包括:

记录单元,用于记录接收所述注册请求的时间;

注册比较单元,用于比较所述注册请求的时间,允许接收时间最小的服务器注册成功。

续约请求单元203,用于接收所述主服务器的续约请求,判断所述主服务器是否满足续约条件,若满足,则续约成功,继续提供数据服务;若不满足,则续约失败,进入数据服务授权单元,执行接收服务器的注册请求的步骤。

所述续约请求单元203,包括:

续约比较单元,用于比较接收所述续约请求的时间是否小于租约锁期限,若是,则续约成功,若否,则续约失败。

所述续约请求单元203,包括:续约比较匹配单元,用于比较所述续约请求接收时间是否与在建立租约机制时预先设定的续约时间相匹配,若是,则续约成功,若否,则续约失败。

所述数据服务授权单元202,包括:

重新注册请求接收单元,用于根据在所述租约机制中预先设定的重新注册请求时间,接收来自除所述主服务器以外的服务器的重新注册请求;

第一判断单元,用于所述重新注册请求是否满足重新注册成功条件,若满足,则进入第二判断单元,若不满足,则返回重新注册失败;

所述第二判断单元,用于判断所述租约机制是否存在授权的所述主服务器,若是,则返回重新注册失败,若否,则进入所述数据服务授权单元,将所述选取满足重新注册成功条件的服务器作为主服务器。

所述第一判断单元包括:重新注册请求时间比较单元,用于比较所述重新注册请求的接收时间是否介于所述预先设定续约时间和所述租约锁期限之间。

基于上述,本发明还提供一种基于分布式应用的租约数据的获取方法,请参考图3所示,图3是本发明提供的一种基于分布式应用的租约数据的获取方 法实施例的流程图。

与上述本发明提供的一种基于分布式应用的租约数据的发送方法相对应,本发明还提供的一种基于分布式应用的租约数据的获取方法,包括:

步骤301:在执行数据服务任务前发送注册请求;

该步骤301具体实现过程是,在服务器执行任何服务功能前,先需要到缓存服务器进行注册,也就是说,服务器在执行任务前需要先向具有租约机制的缓存服务器申请注册请求,用以获取租约机制中的租约锁。

步骤302:接收来自缓存结构中的租约数据;

步骤302的具体实现过程是,缓存服务器根据接收到的注册请求,选取可以作为主服务器的服务器,并将租约锁发送至主服务器,主服务器获得相应的租约数据。

步骤303,启动执行所述数据分发任务;

该步骤在主服务器获得租约数据之后,即可实现相应的服务功能,例如:发红包、广告投放量分发或金额派量等数据分发功能的资源调度。

为避免主服务器因为故障等因素导致无法提供服务功能,在所述步骤303中,还包括:

发送除所述主服务器以外的服务器的重新注册请求;

接收到所述租约数据的服务器重新作为主服务器,启动所述数据服务任务;或者接收重新注册请求失败的信息。

步骤304,向所述缓存结构发送续约请求,并根据接收来自所述缓存结构的续约反馈数据,进入启动执行所述数据分发任务的步骤,或者进入在执行数据分发任务前发送注册请求的步骤。

该步骤具体实现是,当确定主服务器后,在执行服务功能的同时,根据设定的发送续约请求的时间,在时间范围内向缓存服务器发送续约请求,缓存服务器根据在基于分布式应用的租约数据的发送方法中的步骤103,完成续约请求的过程。其中,所述设置发送续约请求的时间介于获得所述租约数据的时间至所述租约锁期限之间;或者所述设置发送续约请求的时间为获得所述租约数据后设定的时间值。

基于上述本发明提供的一种基于分布式应用的租约数据的获取方法,与所 述方法实施例相对应,本发明还提供一种基于分布式应用的租约数据的获取装置实施例,请参看图4,其为本发明提供一种基于分布式应用的租约数据的获取装置实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

如图4所示,本发明提供一种基于分布式应用的租约数据的获取装置,包括:

注册请求发送单元401:用于在执行数据分发任务前发送注册请求;

接收租约数据单元402:用于接收来自缓存结构中的租约数据;

启动执行单元403:用于启动执行所述数据分发任务;

续约请求发送单元404:用于向所述缓存结构发送续约请求,并根据接收来自所述缓存结构的续约反馈数据,进入启动执行单元,或者进入注册请求发送单元。

其中,接收租约数据单元402中包括:租约锁,租约锁期限以及租约锁地址等租约数据信息。

所述续约请求发送单元404包括:续约请求时间设置单元,用于设置发送续约请求的时间。

所述续约请求时间设置单元为介于获得所述租约数据的时间至所述租约锁期限之间的范围;或者,所述续约请求时间设置单元为获得所述租约数据后设定的时间值。

所述启动执行单元403包括:

发送重新注册请求单元,用于发送除所述主服务器以外的服务器的重新注册请求;

数据服务单元,用于将接收到所述租约数据的服务器重新作为主服务器,进入启动所述数据分发任务,或者接收重新注册请求失败的信息。

本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1