CN110535939B - 一种服务发现与抢占方法、装置、计算机设备及存储介质 - Google Patents
一种服务发现与抢占方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110535939B CN110535939B CN201910809241.3A CN201910809241A CN110535939B CN 110535939 B CN110535939 B CN 110535939B CN 201910809241 A CN201910809241 A CN 201910809241A CN 110535939 B CN110535939 B CN 110535939B
- Authority
- CN
- China
- Prior art keywords
- service
- main
- time
- services
- main service
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种服务发现与抢占方法、装置、计算机设备及存储介质,方法包括:服务启动后,每隔第一预定时间更新一次最新在线时间;判断主服务是否存在,若主服务不存在,则服务抢占为主服务;主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息;查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理。本申请不断更新服务的最新在线时间,然后会抢占主服务,并以主服务的身份确认各个服务的状态,并将未发布的数据分摊到有效服务进行处理,这样就可以预防数据重复发布或者发布失败的问题。
Description
技术领域
本申请涉及数据分析技术领域,尤其涉及一种服务发现与抢占方法、装置、计算机设备及存储介质。
背景技术
目前,通常的服务都具有发布与推送功能,服务会不断检测有没有未发布的数据,如果网站维护人员点击批量发布的时候,服务就会检测到并把未发布的数据取出来,进行逐条处理直到这些数据发布和推送完。一条数据从发布、内网推送到外网、然后改为已发布整个过程大约要花费10秒钟左右。发布数据量有多有少,一般发布都有几百条数据。如果只部署到一台服务,发布会慢一些,但是不会出现漏发布或者重复发布的情况。
随着业务不断增长,一台服务已经无法满足要求,此时就要开始扩展服务,比如扩展到N台服务。扩展服务以后会产生新的问题,因为每台服务允许的应用相同,其检测和发布功能都一样,比如A服务检测到有未发布的数据,同时B服务也会检测到相同的未发布的数据,这两台服务都同时处理这些数据,导致重复发布的情况发生。如果是N台服务,最坏情况就是重复发布N次。
为了解决上述重复发布的问题,可以规定某些数据由服务A来处理,某些由服务B来处理,以此类推,这样可以解决重复发布的问题。但是这种解决方案也存在不足之处,例如如果有服务死机(宕机),就会导致有些数据一直未发布。
申请内容
本申请实施例提供了一种服务发现与抢占方法、装置、计算机设备及存储介质,旨在解决现有技术中数据重复发布或者数据发布失败的问题。
第一方面,本申请实施例提供了一种服务发现与抢占方法,其包括:
服务启动后,每隔第一预定时间更新一次最新在线时间;
判断主服务是否存在,若主服务不存在,则服务抢占为主服务;
主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息;
查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理。
第二方面,本申请实施例提供了一种服务发现与抢占装置,其包括:
自检模块,用于服务启动后,每隔第一预定时间更新一次最新在线时间;
抢占模块,用于判断主服务是否存在,若主服务不存在,则服务抢占为主服务;
更新模块,用于主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息;
处理模块,用于查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理。
第三方面,本申请实施例提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的服务发现与抢占方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述服务发现与抢占方法。
本申请实施例提供了一种服务发现与抢占方法,其包括:服务启动后,每隔第一预定时间更新一次最新在线时间;判断主服务是否存在,若主服务不存在,则服务抢占为主服务;主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息;查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理。本申请实施例中,不断更新服务的最新在线时间,然后会抢占主服务,并以主服务的身份确认各个服务的状态,并将未发布的数据分摊到有效服务进行处理,这样就可以预防数据重复发布或者发布失败的问题。本申请实施例同时还提供了一种服务发现与抢占装置、一种计算机可读存储介质和一种计算机设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的服务发现与抢占方法的流程示意图;
图2为本申请实施例提供的服务发现与抢占装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本申请实施例提供的一种服务发现与抢占方法的流程示意图,方法可以包括:
S101、服务启动后,每隔第一预定时间更新一次最新在线时间;
本步骤中,服务启动后,会不断更新最新在线时间。更新最新在线时间的目的是确认服务仍然在线。
具体的,所述步骤S101包括:步骤一、服务启动后,查询数据库中是否有所述服务的服务信息;步骤二、若没有则将所述服务的服务信息插入至所述数据库中,若有则更新数据库中所述服务信息的最新在线时间;步骤三、每隔第一预定时间更新一次服务的最新在线时间。
即在服务启动后,会根据服务的标识查询一次数据库中是否有所述服务的服务信息,也就是说,服务信息中包含了服务的标识,服务启动后会查找是否有自己的标识,如果没有,则表明该服务未记录在数据库中,其原因可能是服务是新增的或者由于其他原因导致服务信息被删除等等,故需要在数据库中增加该服务的服务信息,具体的增加方法是将所述服务的服务信息插入到数据库中,由于服务信息包含了最新在线时间,所以在插入到数据库的服务信息会是最新在线时间,而无需更新。如已经有所述服务的服务信息,由于服务是刚刚启动的,而服务信息中的最新在线时间是之前的,所以此时可立即更新一次数据库中所述服务信息的最新在线时间。最后,服务会每隔第一预定时间更新一次服务的最新在线时间,具体是对数据库中记录的服务信息进行更新,更新最新在线时间的目的是不断对自己进行检测,以便为确认服务是否在线提供依据。
除了上述的服务的标识以及最新在线时间之外,所述服务信息还包括:在线状态、在线服务总数、是否是主服务以及模数。其中的在线状态是指服务是否在线,在线服务总数是指当前在线的服务总数量,是否是主服务是指当前服务是否为主服务,模数是指服务处理数据的标志,针对模数的作用在后文进行详述。
这样,多个服务启动后,都会按照上述步骤相同的方式进行更新,至于每个服务的更新间隔,可以设置为相同,也可以设置不同。
S102、判断主服务是否存在,若主服务不存在,则服务抢占为主服务;
服务在启动后,会判断主服务是否存在,主服务是指master,如果一个服务是主服务,将会对控制所有服务更新服务信息,此时的更新将是指更新服务信息的在线状态、在线服务总数等等。
具体的,所述步骤S102包括:步骤一、所述服务每隔第二预定时间查询一次主服务的服务信息,判断主服务是否存在;步骤二、若主服务不存在,则所述服务抢占为主服务;步骤三、若主服务存在,则判断所述主服务是否为本服务,若所述主服务为本服务,则执行服务信息更新步骤,若所述主服务不为本服务,则结束流程。
在上述过程中,所述服务先每隔第二预定时间查询一次主服务的服务信息,具体的,是在数据库中查询各服务的服务信息,由于服务信息中包含了是否是主服务这个字段,所以可查询该字段的具体内容,若该字段为是(或者为表示是的数值),则相应的服务即为主服务,若该字段为否,则相应的服务即不是主服务。若查询到该字段均为否,由于确认主服务不存在,则当前服务可抢占为主服务,并更新服务信息,即更新服务信息中的是否是主服务。而如果主服务存在,则需要判断所述主服务是否为本服务,即将本服务的标识与主服务的标识进行比对,若一致,若可确认所述主服务为本服务,然后可执行服务信息更新步骤,具体在下文进行详述,若不一致,则可确认所述主服务不为本服务,由于更新服务信息由主服务来完成,所以本服务不会进行后续的更新服务信息流程。当然,即使本服务不进行后续的更新服务信息流程,但还是会继续每隔第二预定时间查询一次主服务的服务信息,即循环执行步骤S102,以便及时确认主服务是否存在,并进行后续流程。其中的第二预定时间与第一预定时间可以是相同的,也可以是不同的,二者可独立设置。
进一步,所述若主服务不存在,则所述服务抢占为主服务包括:步骤一、若主服务不存在,则所述服务抢占为主服务;步骤二、查询主服务的数量,若主服务的数量大于1,则所述服务放弃主服务,至主服务的数量为1。
由于本申请实施例中,会有多个服务在执行上述的流程,即不断的更新最新在线时间,以及不断的查询主服务的服务信息,并判断主服务是否存在,所以可能在某一个时刻,会有多个服务查询到主服务不存在,所以这些服务均会抢占为主服务,所以此时会同时存在多个主服务,如存在多个主服务,会导致这些主服务均会执行后续的流程,易导致程序出错,且执行混乱。本申请实施例中,针对上述情况,会最终确定一个主服务。具体的,在服务抢占为主服务后,会查询主服务的数量,查询的方式还是继续根据是否是主服务的字段来确认,若主服务的数量大于1,则会放弃主服务,即当前服务会放弃主服务的地位。由于各服务可能会同时或相距很短的时间抢占主服务,造成同时存在多个主服务,而在抢占主服务后,查询到主服务的数量存在多个的时间也不尽相同,并且各服务的性能以及处理时间均有所不同,所以放弃主服务的时间并不完全相同,这样就可以使最终的主服务的数量为1。比如4台服务同时查询到主服务的数量为0,那么这4台服务均会同时抢占主服务,然后同时修改自己为主服务,现在变成有4台主服务,抢占完以后继续查询主服务确认主服务的数量是否等于1,如果不等于1,则将抢占到主服务的服务标志修改为不是(即是否是主服务的字段),然后继续上面的步骤。在上述过程中,第一次同时能有4台抢到主服务,由于这4台主服务的性能以及处理时间不一样,所以查询主服务的数量的时间不一样,例如A台主服务会先放弃主服务,此时只存在3台主服务,这3台主服务中,其中的B台主服务会先放弃主服务,此时只存在2台主服务,后续C台主服务会先放弃主服务,那么此时D台主服务查询到只有一个主服务就不会进行放弃的动作。所以本申请实施例中,不会设置为只抢一次就停止执行,会抢完之后、放弃,而后可能会继续进行抢和放弃,直至确认最终的主服务的数量为1。
S103、主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息;
本步骤是由主服务对包括主服务自身在内的所有服务的服务信息进行更新。
具体的,所述步骤S103包括:步骤一、主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,若相差时间超过阈值,则确认相应服务处于失效状态,若相差时间未超过阈值,则确认相应服务处于有效状态;步骤二、将当前处于有效状态的所有服务的key值拼接起来,并与上一次拼接的处于有效状态的所有服务的key值进行比较;步骤三、若二者相同,则不对各服务的服务信息进行更新,若二者不同,则对各服务的服务信息进行更新。
首先确认服务是否在线,确认的方式是查询包括主服务自身在内的所有服务的最新在线时间(具体在数据库中查询),然后与当前时间进行比较,得到相差时间,即将当前时间减去最新在线时间,从而得到各个服务的相差时间,再将所述相差时间与阈值进行比较,若超过阈值,表示该服务已经长时间未更新最新在线时间,所以可确认相应服务处于失效状态,若相差时间未超过阈值,则可先确认相应服务处于有效状态,比如服务最新在线时间是:2019-08-2114:30,当前时间是2019-08-2115:30,将当前时间减去最新在线时间,得到相差时间,如果相差时间超过5分钟,证明服务处于失效状态,对于该例子来说,相差时间为1小时,所以该服务处于失效状态。对于处于有效状态的服务,可将这些服务放入到有效服务池中,而对于处于失效状态的服务,可将这些服务放入到失效服务池中。再将有效服务池中的所有服务的key值拼接起来,并与上一次拼接起来的处于有效状态的所有服务的key值进行比较,若二者相同,则说明当前的有效服务与上一次的有效服务没有变化,即数量没有变化,并且原有效服务与现有效服务均为相同的。所以也就不需要更新各服务的服务信息。如果二者不相同,则说明有效服务发生变化,可能原因有服务宕机或者服务增加,所以需要更新各服务的服务信息。本申请实施例中,是对key值进行拼接,然后进行比较,这样比较的次数会大大减少,只需比较一次,所以减少了计算成本,提高了计算效率。另外,所述key值是指能代表服务关键字段的值,例如所述key值为服务的唯一标识。
此处的更新是对所有服务的服务信息更新,具体的更新内容包括:在线状态、在线服务总数、模数等字段。例如对于处于失效状态的服务,则将其在线状态更新为否,同时还统计所有处于有效状态的服务数量,从而对所有服务的在线服务总数的信息进行更新。而是否是主服务会在服务抢占主服务时进行更新。对于其中的模数,则会根据在线服务总数来确定,例如在线服务总数为5,那么各服务的模数可以依次为0、1、2、3。
S104、查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理。
在确定了处于有效状态的服务后,可查询未发布的数据,然后将未发布的数据分摊到处于有效状态的服务进行处理。
具体的,所述步骤S104包括:步骤一、将未发布的数据的主键字段对状态为有效的服务数量取模;步骤二、将取模结果与状态为有效的各服务的模数进行匹配;步骤三、根据匹配结果将未发布的数据分摊至状态为有效的各服务。
其中的主键字段是指能唯一标识数据的字段,例如对于某一条数据来说,该数据的ID能唯一标识数据,所以可将ID作为主键字段。然后将各条未发布的数据的ID对有效的服务数量进行取模运算,其中的有效的服务数量即为在线服务总数。在进行取模后,就可以得到一个取模结果,该取模结果是一个数字,而且该数字只能是上述模数中的一个,例如0、1、2、3其中的一个,然后就可以将取模结果与处于有效状态的各服务的模数进行匹配,再根据匹配结果来进行分摊。例如取模结果为0,则将对应的数据分配给模数为0的服务进行处理,取模结果为1,则将对应的数据分配给模数为1的服务进行处理,取模结果为2,则将对应的数据分配给模数为2的服务进行处理,取模结果为3,则将对应的数据分配给模数为4的服务进行处理,这样对于海量的数据来说,就可以确保无论处于有效状态的服务是多少台,都能确保较为平均的分摊发布数据,预防发布失败的问题,且能避免重复发布的问题。
需说明的是,为了避免ID中有字母或者其他情况,可以对数据ID进行HASH计算,然后得到一个唯一的HASH值,然后再将HASH值对状态为有效的服务数量进行取模运算,再根据取模结果来进行匹配,这样可以确保出现计算异常的情况发生。
本申请实施例中,服务的服务信息更新和检测等均是由服务自身来完成,而非采用增加的服务或模块来进行更新和检测,这样可以确保检测的准确性和稳定性,因为如果专门设置一个服务或模块来进行更新和检测,也难以保证这个增加的服务或模块能够稳定执行上述过程,而且也难以保证增加的服务或模块自身是否出现宕机等问题。并且本申请实施例由于通过服务自身来进行检测和更新,更适合于在分布式系统中进行应用,可以实现提高检测和更新效率。
请参见图2,图2为本申请实施例所提供的一种服务发现与抢占装置的结构示意图;
该装置可以包括:
自检模块201,用于服务启动后,每隔第一预定时间更新一次最新在线时间;
抢占模块202,用于判断主服务是否存在,若主服务不存在,则服务抢占为主服务;
更新模块203,用于主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息;
处理模块204,用于查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理。
进一步,所述自检模块201包括:
查询单元,用于服务启动后,查询数据库中是否有所述服务的服务信息;
初始更新单元,用于若没有则将所述服务的服务信息插入至所述数据库中,若有则更新数据库中所述服务信息的最新在线时间;
持续更新单元,用于每隔第一预定时间更新一次服务的最新在线时间。
进一步,所述抢占模块202包括:
判断单元,用于所述服务每隔第二预定时间查询一次主服务的服务信息,判断主服务是否存在;
抢占单元,用于若主服务不存在,则所述服务抢占为主服务;
服务确认单元,用于若主服务存在,则判断所述主服务是否为本服务,若所述主服务为本服务,则执行服务信息更新步骤,若所述主服务不为本服务,则结束流程。
进一步,所述更新模块203包括:
状态确认单元,用于主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,若相差时间超过阈值,则确认相应服务处于失效状态,若相差时间未超过阈值,则确认相应服务处于有效状态;
比较单元,用于将当前处于有效状态的所有服务的key值拼接起来,并与上一次拼接的处于有效状态的所有服务的key值进行比较;
更新单元,用于若二者相同,则不对各服务的服务信息进行更新,若二者不同,则对各服务的服务信息进行更新。
进一步,所述抢占单元包括:
抢占子单元,用于若主服务不存在,则所述服务抢占为主服务;
收敛子单元,用于查询主服务的数量,若主服务的数量大于1,则所述服务放弃主服务,至主服务的数量为1。
进一步,所述处理模块204包括:
取模单元,用于将未发布的数据的主键字段对有效的服务数量取模;
匹配单元,用于将取模结果与有效的各服务的模数进行匹配;
分摊单元,用于根据匹配结果将未发布的数据分摊至状态为有效的各服务。
进一步,所述服务信息包括:标识、最新在线时间、在线状态、在线服务总数、是否是主服务以及模数。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的方法。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种计算机设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的方法。当然所述计算机设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种服务发现与抢占方法,其特征在于,包括:
服务启动后,每隔第一预定时间更新一次最新在线时间;
判断主服务是否存在,若主服务不存在,则服务抢占为主服务;
主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息;
查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理。
2.根据权利要求1所述的服务发现与抢占方法,其特征在于,所述服务启动后,每隔预定时间更新一次最新在线时间包括:
服务启动后,查询数据库中是否有所述服务的服务信息;
若没有则将所述服务的服务信息插入至所述数据库中,若有则更新数据库中所述服务信息的最新在线时间;
每隔第一预定时间更新一次服务的最新在线时间。
3.根据权利要求1所述的服务发现与抢占方法,其特征在于,所述判断主服务是否存在,若主服务不存在,则服务抢占为主服务包括:
所述服务每隔第二预定时间查询一次主服务的服务信息,判断主服务是否存在;
若主服务不存在,则所述服务抢占为主服务;
若主服务存在,则判断所述主服务是否为本服务,若所述主服务为本服务,则执行服务信息更新步骤,若所述主服务不为本服务,则结束流程。
4.根据权利要求1所述的服务发现与抢占方法,其特征在于,所述主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息包括:
主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,若相差时间超过阈值,则确认相应服务处于失效状态,若相差时间未超过阈值,则确认相应服务处于有效状态;
将当前处于有效状态的所有服务的key值拼接起来,并与上一次拼接的处于有效状态的所有服务的key值进行比较;其中,所述key值是指代表服务关键字段的值;
若二者相同,则不对各服务的服务信息进行更新,若二者不同,则对各服务的服务信息进行更新。
5.根据权利要求3所述的服务发现与抢占方法,其特征在于,所述若主服务不存在,则所述服务抢占为主服务包括:
若主服务不存在,则所述服务抢占为主服务;
查询主服务的数量,若主服务的数量大于1,则所述服务放弃主服务,至主服务的数量为1。
6.根据权利要求1所述的服务发现与抢占方法,其特征在于,所述查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理包括:
将未发布的数据的主键字段对状态为有效的服务数量取模;
将取模结果与状态为有效的各服务的模数进行匹配;其中,所述模数是指服务处理数据的标志,各服务的模数根据在线服务总数确定;
根据匹配结果将未发布的数据分摊至状态为有效的各服务。
7.根据权利要求1所述的服务发现与抢占方法,其特征在于,所述服务信息包括:标识、最新在线时间、在线状态、在线服务总数、是否是主服务以及模数。
8.一种服务发现与抢占装置,其特征在于,包括:
自检模块,用于服务启动后,每隔第一预定时间更新一次最新在线时间;
抢占模块,用于判断主服务是否存在,若主服务不存在,则服务抢占为主服务;
更新模块,用于主服务查询包括自身在内的所有服务的最新在线时间,并与当前时间进行比较,根据比较结果确认各服务状态,根据各服务状态更新服务信息;
处理模块,用于查询未发布的数据,将未发布的数据分摊至状态为有效的各服务进行处理。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的服务发现与抢占方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述服务发现与抢占方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910809241.3A CN110535939B (zh) | 2019-08-29 | 2019-08-29 | 一种服务发现与抢占方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910809241.3A CN110535939B (zh) | 2019-08-29 | 2019-08-29 | 一种服务发现与抢占方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110535939A CN110535939A (zh) | 2019-12-03 |
CN110535939B true CN110535939B (zh) | 2022-02-11 |
Family
ID=68665182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910809241.3A Active CN110535939B (zh) | 2019-08-29 | 2019-08-29 | 一种服务发现与抢占方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110535939B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142977B (zh) * | 2019-12-26 | 2023-08-18 | 深圳前海环融联易信息科技服务有限公司 | 一种定时任务的处理方法、装置、计算机设备及存储介质 |
CN111880909B (zh) * | 2020-07-27 | 2024-07-19 | 平安科技(深圳)有限公司 | 一种基于分布式的发布数据的方法及装置 |
CN112235359B (zh) * | 2020-09-25 | 2023-08-18 | 深圳星标科技股份有限公司 | 目视助航设备的离线、在线判断方法及装置 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067206A (zh) * | 2012-12-28 | 2013-04-24 | 无锡博欧节能科技有限公司 | 物联网跨机房分布式全自动热备用服务器切换系统 |
CN103944784A (zh) * | 2014-04-23 | 2014-07-23 | 南京邮电大学 | 一种面向大规模云数据中心的服务器协同监控方法 |
CN104158911A (zh) * | 2014-09-01 | 2014-11-19 | 青岛海信电器股份有限公司 | 一种面向服务器集群的控制方法及系统 |
CN104539055A (zh) * | 2015-01-07 | 2015-04-22 | 山东鲁能智能技术有限公司 | 基于网络的电力系统关键设备多机备一的方法及系统 |
CN105847370A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 视频文件的调度分发或请求的方法及系统 |
CN105933448A (zh) * | 2016-06-29 | 2016-09-07 | 江苏电力信息技术有限公司 | 一种自管理的微服务架构及其服务方法 |
CN106096975A (zh) * | 2016-06-03 | 2016-11-09 | 北京壹代家庭服务有限公司 | 一种在线客服系统及方法 |
CN106878475A (zh) * | 2015-12-14 | 2017-06-20 | 中国电信股份有限公司 | 域名寻址方法和系统 |
CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及系统 |
CN107204861A (zh) * | 2017-07-27 | 2017-09-26 | 郑州云海信息技术有限公司 | 一种服务器集群事件处理方法 |
CN107302580A (zh) * | 2017-06-30 | 2017-10-27 | 北京金山安全软件有限公司 | 负载均衡方法、装置、负载均衡器及存储介质 |
CN108073460A (zh) * | 2017-12-29 | 2018-05-25 | 北京奇虎科技有限公司 | 分布式系统中的全局锁抢占方法、装置及计算设备 |
CN108156208A (zh) * | 2016-12-02 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 一种应用程序数据的发布方法、装置和系统 |
CN109040212A (zh) * | 2018-07-24 | 2018-12-18 | 苏州科达科技股份有限公司 | 设备接入服务器集群方法、系统、设备及存储介质 |
CN109240840A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 集群系统的容灾方法、装置和机器可读介质 |
CN109246246A (zh) * | 2018-10-31 | 2019-01-18 | 成都知道创宇信息技术有限公司 | 一种中心化全自动服务发现负载均衡系统 |
CN109960586A (zh) * | 2019-02-19 | 2019-07-02 | 北京邮电大学 | 一种服务器状态可感知的四层负载均衡器及均衡方法 |
CN110134522A (zh) * | 2019-04-04 | 2019-08-16 | 杭州抖音科技有限公司 | 一种带有心跳的分布式锁实现方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10686908B2 (en) * | 2016-11-18 | 2020-06-16 | Sap Se | Embedded database as a microservice for distributed container cloud platform |
-
2019
- 2019-08-29 CN CN201910809241.3A patent/CN110535939B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067206A (zh) * | 2012-12-28 | 2013-04-24 | 无锡博欧节能科技有限公司 | 物联网跨机房分布式全自动热备用服务器切换系统 |
CN103944784A (zh) * | 2014-04-23 | 2014-07-23 | 南京邮电大学 | 一种面向大规模云数据中心的服务器协同监控方法 |
CN104158911A (zh) * | 2014-09-01 | 2014-11-19 | 青岛海信电器股份有限公司 | 一种面向服务器集群的控制方法及系统 |
CN104539055A (zh) * | 2015-01-07 | 2015-04-22 | 山东鲁能智能技术有限公司 | 基于网络的电力系统关键设备多机备一的方法及系统 |
CN106878475A (zh) * | 2015-12-14 | 2017-06-20 | 中国电信股份有限公司 | 域名寻址方法和系统 |
CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及系统 |
CN105847370A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 视频文件的调度分发或请求的方法及系统 |
CN106096975A (zh) * | 2016-06-03 | 2016-11-09 | 北京壹代家庭服务有限公司 | 一种在线客服系统及方法 |
CN105933448A (zh) * | 2016-06-29 | 2016-09-07 | 江苏电力信息技术有限公司 | 一种自管理的微服务架构及其服务方法 |
CN108156208A (zh) * | 2016-12-02 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 一种应用程序数据的发布方法、装置和系统 |
CN107302580A (zh) * | 2017-06-30 | 2017-10-27 | 北京金山安全软件有限公司 | 负载均衡方法、装置、负载均衡器及存储介质 |
CN109240840A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 集群系统的容灾方法、装置和机器可读介质 |
CN107204861A (zh) * | 2017-07-27 | 2017-09-26 | 郑州云海信息技术有限公司 | 一种服务器集群事件处理方法 |
CN108073460A (zh) * | 2017-12-29 | 2018-05-25 | 北京奇虎科技有限公司 | 分布式系统中的全局锁抢占方法、装置及计算设备 |
CN109040212A (zh) * | 2018-07-24 | 2018-12-18 | 苏州科达科技股份有限公司 | 设备接入服务器集群方法、系统、设备及存储介质 |
CN109246246A (zh) * | 2018-10-31 | 2019-01-18 | 成都知道创宇信息技术有限公司 | 一种中心化全自动服务发现负载均衡系统 |
CN109960586A (zh) * | 2019-02-19 | 2019-07-02 | 北京邮电大学 | 一种服务器状态可感知的四层负载均衡器及均衡方法 |
CN110134522A (zh) * | 2019-04-04 | 2019-08-16 | 杭州抖音科技有限公司 | 一种带有心跳的分布式锁实现方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110535939A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110535939B (zh) | 一种服务发现与抢占方法、装置、计算机设备及存储介质 | |
CN107844343B (zh) | 一种复杂服务端应用系统的升级系统及方法 | |
CN109614209B (zh) | 一种任务处理方法、应用服务器及系统 | |
CN107870982B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN108170820B (zh) | 一种容器处理方法、控制服务器及分布式集群 | |
CN112579692B (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN107819556B (zh) | 一种服务状态切换方法及装置 | |
CN112099825B (zh) | 组件进行升级的方法、装置、设备及存储介质 | |
CN105704241A (zh) | 一种客户端程序更新方法及系统、业务平台 | |
CN112865992A (zh) | 分布式主从系统中主节点的切换方法、装置和计算机设备 | |
CN110955723A (zh) | 一种主从数据库同步状态监控方法、装置及电子设备 | |
CN110737670A (zh) | 一种集群数据一致性的保障方法、装置及系统 | |
CN105573851A (zh) | 一种流程协同处理方法及系统 | |
CN113900842A (zh) | 消息的消费方法、装置、电子设备及计算机存储介质 | |
US20190057001A1 (en) | Decoupled maintenance and repository synchronization error detection | |
CN114896337A (zh) | 一种数据上链方法、系统、设备和计算机可读存储介质 | |
CN114860408A (zh) | 线程池资源管理方法及装置 | |
CN111046055A (zh) | 一种区块链全局配置的变更方法、设备和存储介质 | |
CN110795100B (zh) | 分支合并方法及装置 | |
CN113688021A (zh) | 一种负载均衡服务处理方法、装置、设备及可读存储介质 | |
CN111464357A (zh) | 资源配置方法及装置 | |
CN113206891B (zh) | 元数据上报的调度方法、存储系统、调度装置及存储介质 | |
CN113535219B (zh) | 一种app信息发布方法、装置、介质及计算机设备 | |
CN110990134B (zh) | 一种智能任务调度的方法、装置、计算机设备及存储介质 | |
CN114116738A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |