CN103516746B - 服务变化消息的推送方法、装置及系统 - Google Patents
服务变化消息的推送方法、装置及系统 Download PDFInfo
- Publication number
- CN103516746B CN103516746B CN201210212957.3A CN201210212957A CN103516746B CN 103516746 B CN103516746 B CN 103516746B CN 201210212957 A CN201210212957 A CN 201210212957A CN 103516746 B CN103516746 B CN 103516746B
- Authority
- CN
- China
- Prior art keywords
- service
- isp
- server node
- consumer
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种服务变化消息的推送方法、装置及系统,其中,该方法包括:服务器节点确定该服务器节点上的服务提供者发生变化,其中,服务器节点为分布式协作服务系统中的节点;服务器节点向关注上述服务提供者提供的服务的服务消费者推送服务变化消息,其中,该服务变化消息用于指示上述服务提供者的变化信息。通过本发明,使得服务消费者能够及时感知服务提供者的变化信息,并及时更改服务提供者信息,实现快速地动态上下线服务。降低了服务配置出错的几率,简化服务消费者的服务配置和获取,优化了服务消费者的体验。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种服务变化消息的推送方法、装置及系统。
背景技术
云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(UtilityComputing)网络存储(Network Storage Technologies)、虚拟化(Virtualization)以及负载均衡(Load Balance)等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的系统。
分布式协作服务是云计算范畴中的一个领域,其作用是提供大量服务提供者的动态上下线服务,以及服务消费者动态获取服务提供者配置信息的快速通道。
图1是根据相关技术的分布式协作服务系统的示意图,如图1所示,分布式协作服务系统包括多个服务器节点、服务注册端、服务订阅端,以及多个服务提供者和服务消费者。其中,服务器节点负责存储服务提供者和其配置信息数据,以及将推送给服务订阅端指定关注服务下的服务数据的变化。服务提供者将自身服务和相关服务配置信息发给服务注册端,由服务注册端将其注册到服务器中,并可更新服务配置信息、取消注册等操作。服务器节点将被关注的服务变化通知推送给服务订阅端,服务订阅端推送给服务消费者,服务消费者接着获取该服务的最新数据信息。服务器数据不会保存在单个服务器节点(以下简称节点),而是在多个节点上保存同一个数据的副本,各个副本互为备份,提高了系统中数据的安全性。
在分布式协作服务系统中,如何让服务消费者动态知晓服务提供者的变化,是一个比较难以解决的关键问题,尤其是在服务提供者众多,而又不定时上下线的情况下,该问题最为明显。如果服务提供者,在程序运行期间,上下线比较频繁,利用现有技术无法满足服务消费者的快速感知和快速配置,特别是在服务提供者众多的情况下,使用服务的一端将无法及时处理服务的快速上下线。
通过对现有技术分析,目前有以下两种解决方案:
方案1,在服务提供者有变化时,手动将服务提供者的信息,加载到服务消费者一端,该方法很有可能会停掉服务消费者,不适用于绝大部分要求7*24小时运行的系统中,而且很容易出现人工错误。
方案2,将服务提供者写入服务消费者的配置文件中,或者写在程序中,这种情况下,服务提供者必须在启动时,就要提供服务,而且服务提供者的下线无法通知服务消费者,除非服务提供者在下线时,主动通知服务消费者,但是无法处理服务提供者意外下线的情况,而且还要在两者间有专门的通信消息。服务提供者中途上线,由于无法预知服务消费者,所以无法通知服务消费者。而服务消费者也不能精确预料服务提供者的位置,除非在系统中限制服务提供者的位置和数量。
针对相关技术中的上述问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中分布式协作服务系统中大量服务的动态上下线的问题,本发明提供了一种服务变化消息的推送方法、装置及系统,以至少解决上述问题。
根据本发明的一个方面,提供了一种服务变化消息的推送方法,包括:服务器节点确定该服务器节点上的服务提供者发生变化,其中,所述服务器节点为分布式协作服务系统中的节点;所述服务器节点向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,其中,所述服务变化消息用于指示所述服务提供者的变化信息。
优选地,服务器节点确定该服务器节点上的服务提供者发生变化,包括:所述服务器节点接收到服务提供者通过服务注册端发送的注册服务请求时,确定该服务器节点上的服务提供者发生变化;和/或,所述服务器节点接收到取消服务请求时,确定该服务器节点上的服务提供者发生变化,其中,所述取消服务请求用于指示一个或多个服务提供者退出服务;和/或,所述服务器节点接收到服务提供者发送更改所述服务提供者信息的消息时,确定该服务器节点上的服务提供者发生变化。
优选地,所述服务器节点接收到服务提供者通过服务注册端发送的注册服务请求之后,还包括:所述服务器节点将所述服务提供者注册到所述服务器节点;所述服务器节点向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,包括:所述服务器节点向关注所述服务提供者提供服务的服务消费者,推送指示所述服务的服务提供者增加的服务变化消息。
优选地,推送指示所述服务的服务提供者增加的服务变化消息之后,还包括:所述服务消费者获取所述当前服务提供者信息;所述服务消费者依据所述当前服务提供者信息选取所述服务的服务提供者。
优选地,所述注册服务请求携带的信息包括以下至少之一:所述服务提供者的标识、所述服务提供者的配置信息、所述服务提供者提供服务的有效时间。
优选地,所述服务器节点接收取消服务请求,包括:所述服务器节点接收所述服务提供者需要取消该服务提供者提供的服务时,通过所述服务注册端发送的取消服务请求;或者,所述服务器节点接收所述服务注册端发送的取消服务请求,其中,所述取消服务请求为所述服务注册端在检测到所述服务提供者与该服务注册端断开连接后发送的请求。
优选地,所述服务器节点接收所述服务注册端发送的取消服务请求之前,还包括:所述服务注册端实时检测与所述服务提供者的连接;所述服务注册端在检测到所述服务提供者与该服务注册端断开连接时,向所述服务器节点发送所述取消服务请求。
优选地,所述服务器节点接收到取消服务请求之后,还包括:所述服务器节点从所述服务器节点上删除所述取消服务请求所指示的服务提供者;所述服务器节点向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,包括:所述服务器节点向关注所述服务提供者提供服务的服务消费者,推送指示所述服务的服务提供者减少的服务变化消息。
优选地,所述服务器节点接收到服务提供者发送更改所述服务提供者的信息的消息之后,还包括:所述服务器节点在所述服务器节点上更新所述服务提供者的信息;所述服务器节点向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,包括:所述服务器节点向关注所述服务提供者提供服务的服务消费者,推送指示所述服务的服务提供者的信息更新的服务变化消息。
根据本发明的另一个方面,提供了一种服务变化消息的推送装置,位于服务器节点,包括:确定模块,用于确定该服务器节点上的服务提供者发生变化,其中,所述服务器节点为分布式协作服务系统中的节点;推送模块,用于向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,其中,所述服务变化消息用于指示所述服务提供者的变化信息。
优选地,所述确定模块,用于在接收到服务提供者通过服务注册端发送的注册服务请求时,确定该服务器节点上的服务提供者发生变化;和/或,用于在接收到取消服务请求时,确定该服务器节点上的服务提供者发生变化,其中,所述取消服务请求用于指示一个或多个服务提供者退出服务;和/或,用于在接收到服务提供者发送更改所述服务提供者信息的消息时,确定该服务器节点上的服务提供者发生变化。
优选地,所述确定模块按照以下方式接收所述取消服务请求:接收所述服务提供者需要取消该服务提供者提供的服务时,通过所述服务注册端发送的取消服务请求;或者,接收所述服务注册端发送的取消服务请求,其中,所述取消服务请求为所述服务注册端在检测到所述服务提供者与该服务注册端断开连接后发送的请求。
根据本发明的又一个方面,提供了一种服务器节点包括本发明提供的上述装置。
根据本发明的又一个方面,提供了一种服务变化消息的推送系统,包括:服务器节点、服务消费者,其中,所述服务器节点,用于确定该服务器节点上的服务提供者发生变化,以及向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,其中,所述服务变化消息用于指示所述服务提供者的变化信息;所述服务消费者,用于通过服务订阅端接收所述服务变化消息,并根据所述服务变化消息选取服务提供者。
通过本发明,分布式协作服务系统中的服务器节点确定该服务器节点上的服务提供者发生变化,向关注上述服务提供者提供的服务的服务消费者推送服务变化消息,该服务变化消息用于指示上述服务提供者的变化信息。使得服务消费者能够及时感知服务提供者的变化信息,并及时更改服务提供者信息,实现快速地动态上下线服务。降低了服务配置出错的几率,简化服务消费者的服务配置和获取,优化了服务消费者的体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的分布式协作服务系统的示意图;
图2是根据本发明实施例的服务变化消息的推送方法的流程图;
图3是根据本发明实施例的分布式协作服务的协作示意图;
图4是根据本发明具体实施例的服务变化消息的推送方法的流程图;
图5是根据本发明实施例的服务变化消息的推送装置的结构框图;
图6是根据本发明实施例的服务消息的推送系统的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
鉴于上述现有技术的局限性,本发明实施例提供了一种在服务变化消息的推送方案。在该方案中,分布式协作服务器节点,主动将服务消费者关注的服务提供者的上线、下线、服务提供者配置信息更改等事件推送给服务消费者,使得服务消费者快速更改自身服务提供者列表以及相关信息,实现快速地动态上下线服务。降低了服务配置出错的几率,简化服务消费者的服务配置和获取,优化了服务消费者的体验。
根据本发明实施,提供了一种服务变化消息的推送方法,服务提供者发生变化时,服务器节点主动向服务消费者推送服务提供者的服务变化消息,指示服务提供者的变化信息。
图2是根据本发明实施例的服务变化消息的推送方法的流程图,如图2所示,该方法主要包括步骤S202至步骤S204。
步骤S202,服务器节点确定该服务器节点上的服务提供者发生变化,其中,服务器节点为分布式协作服务系统中的节点。
步骤S204,服务器节点向关注上述服务提供者提供的服务的服务消费者推送服务变化消息,其中,该服务变化消息用于指示上述服务提供者的变化信息。
通过本发明实施例,分布式协作服务系统中的服务器节点确定该服务器节点上的服务提供者发生变化,向关注上述服务提供者提供的服务的服务消费者推送服务变化消息,该服务变化消息用于指示上述服务提供者的变化信息。使得服务消费者能够及时感知服务提供者的变化信息,并及时更改服务提供者信息,实现快速地动态上下线服务。降低了服务配置出错的几率,简化服务消费者的服务配置和获取,优化了服务消费者的体验。
在本发明实施例的一个优选实施方式中,服务器节点确定该服务器节点上的服务提供者发生变化,可以是在服务器节点接收到服务提供者通过服务注册端发送的注册服务请求时,确定该服务器节点上的服务提供者发生变化;和/或,在服务器节点接收到取消服务请求时,确定该服务器节点上的服务提供者发生变化,其中,取消服务请求用于指示一个或多个服务提供者退出服务;和./或,在服务器节点接收到服务提供者发送更改该服务提供者信息的消息时,确定该服务器节点上的服务提供者发生变化。通过本优选实施方式,实现了在服务提供者注册到服务器节点,为服务消费者提供服务时,向服务消费者推送服务变化消息;在服务提供者取消服务时,向服务消费者推送服务变化消息;以及,在服务提供者改变自身信息时,向服务消费者推送服务变化消息,使得服务消费者能够及时感知服务提供者的变化。
进一步的,服务器节点接收到服务提供者通过服务注册端发送的注册服务请求之后,还可以将所述服务提供者注册到所述服务器节点。此时,服务器节点可以向关注该服务提供者提供的服务的服务消费者推送服务变化消息,指示该服务消费者关注的服务的服务提供者增加。进一步的,在该服务消费者请求获取新的服务提供者信息时,服务器节点可以向该服务消费者发送指示该服务消费者关注的服务的当前服务提供者信息的消息。例如,向服务消费者推送更新后的服务提供者列表,服务消费者可以根据更新后的服务提供者列表选取服务提供者;或者,服务器节点可以向服务消费者发送注册到服务器节点的服务提供者;服务器节点也可以向服务消费者发送通知消息,询问服务消费者是否需要获取新的服务提供者信息,如果需要,则将新的服务提供者列表发送至服务消费者。
服务节点推送指示服务消费者关注的服务的服务提供者增加的服务变化消息之后,服务消费者可以获取当前服务提供者信息,依据当前服务提供者信息选取该服务的服务提供者。例如,服务消费者可以请求服务器节点发送当前的服务提供者列表,从当前的服务提供者列表中选取新的服务提供者,或者,向服务器节点发送消息获取新的服务提供者列表,服务器节点向服务消费者推送新的服务提供者列表,服务消费中从中选取服务提供者。
在本发明实施例中,上述注册服务请求携带的信息包括但不限于以下至少之一:服务提供者的标识、服务提供者的配置信息、服务提供者提供服务的有效时间。服务消费者请求关注所需的服务后,服务器节点可以将相应的服务提供者的配置信息、提供服务的有效时间推送至服务消费者,服务消费者与服务提供者建立连接,与服务提供者交互获取服务数据。例如,服务提供者将其网络地址等配置信息注册到服务器节点,服务器节点在接收到服务消费者的关注服务请求时,将服务提供者的网络地址等配置信息发送至服务消费者,服务消费者根据接收到的配置信息,与服务提供者建立连接,从服务提供者获取服务数据。
在本发明实施例的一个优选实施方式中,服务器节点接收取消服务请求,包括:接收服务提供者需要取消该服务提供者提供的服务时,通过服务注册端发送的取消服务请求;或者,接收服务注册端发送的取消服务请求,该取消服务请求为服务注册端在检测到服务提供者与该服务注册端断开连接后发送的请求。优选地,在服务器节点接收服务注册端发送的取消服务请求之前,服务注册端可以实时检测与服务提供者的连接,在检测到服务提供者与该服务注册端断开连接时,向服务器节点发送取消服务请求。例如,服务注册端检测服务注册端与服务提供者的心跳消息,若为检测到心跳消息,则可以确定服务提供者意外下线。此时,服务注册端可以向服务器节点发送取消服务消息。通过本优选实施方式,实现了在服务提供者下线时,将服务提供者下线的消息推送至服务消费者,以及在服务提供者意外下线时,服务提供者意外下线的消息推送至服务消费者。
进一步的,服务器节点接收到取消服务请求之后,还可以从服务器节点上删除该取消服务请求所指示的服务提供者。此时,服务器节点可以向关注该服务提供者提供服务的服务消费者,推送指示该服务的服务提供者减少的服务变化消息。进一步的,可以向服务消费者发送当前的服务提供者信息,例如,向服务消费者推送更新后的服务提供者列表,服务消费者可以根据更新后的服务提供者列表选取服务提供者;或者,服务器节点可以向服务消费者发送从服务器节点取消服务的服务提供者;服务器节点也可以向使用该服务提供者的服务消费者发送通知消息,通知服务消费者为提供服务的服务提供者下线,并询问是否需要新的服务提供者列表,如果需要,则将新的服务提供者列表发送至服务消费者。
在本发明实施例的另一个优选实施方式中,服务器节点接收到服务提供者发送更改该服务提供者的信息的消息之后,还可以在该服务器节点上更新上述服务提供者的信息。此时,服务器节点可以向关注该服务提供者提供服务的服务消费者,推送指示该服务的服务提供者的信息更新的服务变化消息。例如,服务提供者更新了服务提供者的IP地址,则可以向服务消费者发送指示该服务提供者IP地址更改的消息。进一步的,服务消费者可以从服务器节点上获取服务提供者更新后的IP地址。
在实际应用中,服务器节点从服务器节点上删除取消服务请求所指示的服务提供者时,可以直接删除该服务提供者的信息,优选地,为了方便服务提供者再次上线,也可以仅将服务提供者的状态置为暂停服务,服务提供者再次上线时,可以将服务提供者的状态置为有效,使得服务提供者无需多次发送服务提供者的信息。
在本发明实施例中,服务提供者不用关注服务消费者,只需要向分布式协作服务系统中的服务器节点注册服务提供者信息,就可以实现随时上线和下线。同时,服务消费者也不用关心服务提供者的具体位置,只需要向服务器节点发送关注服务请求,就可以获取到服务下的最新数据。并且在服务提供者信息发送变化时,服务器节点主动向服务消费者推送服务变化消息,服务消费者可以及时获取到该服务的变化通知。.
优选实施例
下面以如图1所示的分布式协作服务系统为例,对本发明实施例的优选实施方式进行说明。在如图1所示的分布式协作服务系统中,该系统包括:服务器节点、服务注册端和服务订阅端,以及若干服务提供者和服务消费者。其中,注册端与服务器节点建立连接,订阅端与服务器节点建立连接,注册端和订阅端不需要彼此之间建链。本优选实施例的服务变化消息的推送方法包括步骤A至步骤G。
步骤A:服务消费者通过服务订阅端向服务器节点发送服务的关注操作,关注该服务下的子节点变化以及子节点配置信息的变化。
步骤B:服务提供者通过服务注册端向服务器节点注册一个服务提供者,并提供服务提供者名字,服务配置信息以及服务有效时间等信息。
步骤C:服务器节点向服务订阅端推送该服务的事件变化通知,通知服务订阅端服务提供者有变化。
步骤D:服务订阅端将事件变化通知推送给服务消费者,服务消费者可以选择从服务器节点获取该服务下的最新服务数据。
步骤E:服务注册端和服务提供者之间维护心跳消息,若服务提供者在服务有效时间之内无法提供心跳消息,则服务注册端认为服务提供者失效,并主动将该服务提供者从服务器端删除。
步骤F:服务提供者通过服务注册端向服务器节点发送取消注册服务请求,服务器节点删除该服务提供者的信息,并返回取消注册成功,同时通过服务订阅端推送给服务消费者服务事件变化通知。
步骤G:服务消费者通过服务订阅端向服务器节点发送取消关注服务的请求,服务器节点取消关注服务,并返回取消关注成功。
通过本发明优选实施例,服务注册端向服务器节点注册服务提供者信息,而服务订阅端只需要发送指定服务的关注消息到服务器,服务器节点收到服务提供者的注册消息或者取消注册消息等,主动将该事件推送给服务订阅端,由订阅端推送给服务消费者。服务消费者从服务器节点获取该服务下的全量最新数据,进而得知服务提供者的变化。解决了传统的手动配置服务带来的人工误差和繁琐工作,也解决了利用配置文件配置服务提供者,而无法实现服务的动态上下线的问题。实现了服务的动态上下线服务,服务提供者不必事先了解服务消费者的信息,服务消费者也不需要事先了解服务提供者的信息,只需要和分布式协作服务系统交互,实现方便快捷的大量服务的上下线。
具体实施例
根据本发明具体实施例,在云计算领域分布式协作系统中,解决大量服务的动态上下线的问题,满足服务的快速动态的上下线,而且可以同时给大量的服务提供者和服务消费者提供协作服务。
在如图1所示的分布式协作服务系统中,对某一个服务提供者,服务注册端提供对该服务提供者的注册和维护。服务订阅端提供对服务的关注,获取服务的事件变化通知,并根据服务消费者需求读取该服务下的服务提供者的信息,系统协作流程如图3所示。
图4是根据本发明具体实施例的服务变化消息的推送方法的流程图,如图4所示,该方法可以包括步骤S301至步骤S321:
步骤S401,服务消费者向服务订阅端发起对服务的关注请求;
步骤S402,服务订阅端将该关注服务请求发送给服务器节点;
步骤S403,服务器节点存储对该服务的关注请求,并向服务订阅端返回关注成功;
步骤S404,服务订阅端向服务消费者返回关注成功;
步骤S405,服务提供者向服务注册端发起注册服务请求;
步骤S406,服务注册端将服务提供者的注册服务请求发送给服务器节点;
步骤S407,服务器节点存储该服务提供者,并给服务注册端返回注册成功,同时给服务订阅端推送服务变化通知;
步骤S408,服务注册端向服务提供者返回注册成功,服务注册端启动本地监控服务,监控服务提供者是否一直存活,同时服务订阅端给服务消费者推送服务变化通知;
步骤S409,服务提供者启动心跳保活函数,使服务一直生效;
步骤S410,服务消费者向服务订阅端发起获取服务数据请求;
步骤S411,服务订阅端将获取服务数据请求发送给服务器节点。
步骤S412,服务器节点将服务的相关数据发送给服务订阅端。
步骤S413,服务订阅端将获取的服务相关数据发送给服务消费者。
步骤S414,服务提供者向服务注册端发起取消服务请求。
步骤S415,服务注册端向服务器节点发起取消服务请求。
步骤S416,服务器节点删除该服务,并向服务注册端发送取消服务成功消息,同时向服务订阅端推送服务变化通知。
步骤S417,服务注册端向服务提供者发送取消服务成功消息,同时服务订阅端向服务消费者推送服务变化通知。
步骤S418,服务消费者向服务订阅端发送取消关注服务请求。
步骤S419,服务订阅端向服务器节点发起取消关注服务请求。
步骤S420,服务器节点取消关注该服务,并向服务订阅端返回取消关注成功。
步骤S421,服务订阅端向服务消费者返回取消关注成功。
通过本发明具体实施例,提供了大量服务的动态上下线服务,简化应用程序的配置,优化应用体验。
根据本发明实施例,对应于本发明实施例的上述方法,还提供了一种服务变化消息的推送装置,位于分布式协作服务系统中的服务器节点中,用以实现本发明实施例的上述方法。
图5是根据本发明实施例的服务变化消息的推送装置的结构框图,如图5所示,该装置主要包括:确定模块10和推送模块20。其中,确定模块10,用于确定服务器节点上的服务提供者发生变化,其中,服务器节点为分布式协作服务系统中的节点;推送模块20,与确定模块10相耦合,用于向关注上述服务提供者提供的服务的服务消费者推送服务变化消息,其中,该服务变化消息用于指示服务提供者的变化信息。
通过本发明实施例,确定模块10确定分布式协作服务系统中的服务器节点上的服务提供者发生变化,推送模块20向关注上述服务提供者提供的服务的服务消费者推送服务变化消息,该服务变化消息用于指示上述服务提供者的变化信息。使得服务消费者能够及时感知服务提供者的变化信息,并及时更改服务提供者信息,实现快速地动态上下线服务。降低了服务配置出错的几率,简化服务消费者的服务配置和获取,优化了服务消费者的体验。
在本发明实施例的一个优选实施方式中,确定模块10,可以用于在接收到服务提供者通过服务注册端发送的注册服务请求时,确定该服务器节点上的服务提供者发生变化;和/或,用于在接收到取消服务请求时,确定该服务器节点上的服务提供者发生变化,其中,该取消服务请求用于指示一个或多个服务提供者退出服务;和/或,用于在接收到服务提供者发送更改服务提供者信息的消息时,确定该服务器节点上的服务提供者发生变化。通过本优选实施方式,实现了在服务提供者注册到服务器节点,或者在服务提供者取消服务时,向服务消费者推送服务变化消息;以及,在服务提供者改变自身信息时,向服务消费者推送服务变化消息,使得服务消费者能够及时感知服务提供者的变化。
服务器节点接收取消服务请求可以包括:接收服务提供者需要取消该服务提供者提供的服务时,通过服务注册端发送的取消服务请求;或者,接收服务注册端发送的取消服务请求,该取消服务请求为服务注册端在检测到服务提供者与该服务注册端断开连接后发送的请求。优选地,在服务器节点接收服务注册端发送的取消服务请求之前,服务注册端可以实时检测与服务提供者的连接,在检测到服务提供者与该服务注册端断开连接时,向服务器节点发送取消服务请求。因此,在本发明实施例的一个优选实施方式中,确定模块10可以按照以下方式接收取消服务请求:接收服务提供者需要取消该服务提供者提供的服务时,通过服务注册端发送的取消服务请求;或者,接收服务注册端发送的取消服务请求,其中,取消服务请求为服务注册端在检测到服务提供者与该服务注册端断开连接后发送的请求。
根据本发明实施例,还提供了一种服务器节点,包括本发明实施了的上述装置。
根据本发明实施例,还提供了一种服务变化消息的推送系统,用于实现本发明实施例的上述方法。
图6是根据本发明实施例的服务消息的推送系统的示意图,如图6所示,该系统主要包括:服务器节点1和服务消费者2,其中,服务器节点1,用于确定该服务器节点上的服务提供者发生变化,以及向关注服务提供者提供的服务的服务消费者推送服务变化消息,其中,上述服务变化消息用于指示服务提供者的变化信息;服务消费者2,用于通过服务订阅端接收上述服务变化消息,并根据服务变化消息选取服务提供者。
通过本发明实施例,服务器节点1确定该服务器节点上的服务提供者发生变化,向关注上述服务提供者提供的服务的服务消费者2推送服务变化消息,该服务变化消息用于指示上述服务提供者的变化信息。使得服务消费者2能够及时感知服务提供者的变化信息,并及时更改服务提供者信息,实现快速地动态上下线服务。降低了服务配置出错的几率,简化服务消费者的服务配置和获取,优化了服务消费者的体验。
在本发明实施例的一个优选实施方式中,服务器节点1确定该服务器节点上的服务提供者发生变化,可以是在服务器节点1接收到服务提供者通过服务注册端发送的注册服务请求时,确定该服务器节点上的服务提供者发生变化;和/或,在服务器节点1接收到取消服务请求时,确定该服务器节点上的服务提供者发生变化,其中,取消服务请求用于指示一个或多个服务提供者退出服务;和./或,在服务器节点接收到服务提供者发送更改该服务提供者信息的消息时,确定该服务器节点上的服务提供者发生变化。
进一步的,服务器节点接1收到服务提供者通过服务注册端发送的注册服务请求之后,还可以将服务提供者注册到服务器节点。此时,服务器节点1可以向关注该服务提供者提供的服务的服务消费者推送服务变化消息,指示该服务消费者关注的服务的服务提供者增加。进一步的,在该服务消费者请求获取新的服务提供者信息时,服务器节点可以向该服务消费者发送指示该服务消费者关注的服务的当前服务提供者信息的消息。例如,向服务消费者推送更新后的服务提供者列表,服务消费者可以根据更新后的服务提供者列表选取服务提供者;或者,服务器节点可以向服务消费者发送注册到服务器节点的服务提供者;服务器节点也可以向服务消费者发送通知消息,询问服务消费者是否需要获取新的服务提供者信息,如果需要,则将新的服务提供者列表发送至服务消费者。
在本发明实施例的另一个优选实施方式中,服务器节点1接收取消服务请求,包括:接收服务提供者需要取消该服务提供者提供的服务时,通过服务注册端发送的取消服务请求;或者,接收服务注册端发送的取消服务请求,该取消服务请求为服务注册端在检测到服务提供者与该服务注册端断开连接后发送的请求。优选地,在服务器节点接收服务注册端发送的取消服务请求之前,服务注册端可以实时检测与服务提供者的连接,在检测到服务提供者与该服务注册端断开连接时,向服务器节点发送取消服务请求。
进一步的,服务器节点1接收到取消服务请求之后,还可以从服务器节点1上删除该取消服务请求所指示的服务提供者。此时,服务器节点1可以向关注该服务提供者提供服务的服务消费者,推送指示该服务的服务提供者减少的服务变化消息。进一步的,可以向服务消费者发送当前的服务提供者信息,例如,向服务消费者推送更新后的服务提供者列表,服务消费者可以根据更新后的服务提供者列表选取服务提供者;或者,服务器节点1可以向服务消费者发送从服务器节点取消服务的服务提供者;服务器节点也可以向使用该服务提供者的服务消费者发送通知消息,通知服务消费者为提供服务的服务提供者下线,并询问是否需要新的服务提供者列表,如果需要,则将新的服务提供者列表发送至服务消费者。
服务器节点1的上述可以通过本发明实施例的上述装置实现,也可以通过其他方式实现,本领域技术人员可以跟实际需要划分功能模块,实现服务器节点1的上述功能。
从以上的描述中,可以看出,本发明实现了如下技术效果:服务注册端向服务器节点注册服务提供者信息,而服务订阅端只需要发送指定服务的关注消息到服务器,服务器节点收到服务提供者的注册消息或者取消注册消息等,主动将该事件推送给服务订阅端,由订阅端推送给服务消费者。服务消费者从服务器节点获取该服务下的全量最新数据,进而得知服务提供者的变化。解决了传统的手动配置服务带来的人工误差和繁琐工作,也解决了利用配置文件配置服务提供者,而无法实现服务的动态上下线的问题。实现了服务的动态上下线服务,服务提供者不必事先了解服务消费者的信息,服务消费者也不需要事先了解服务提供者的信息,只需要和分布式协作服务系统交互,实现方便快捷的大量服务的上下线。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种服务变化消息的推送方法,其特征在于,包括:
服务器节点确定该服务器节点上的服务提供者发生变化,其中,所述服务器节点为分布式协作服务系统中的节点;
所述服务器节点向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,其中,所述服务变化消息用于指示所述服务提供者的变化信息;
服务器节点确定该服务器节点上的服务提供者发生变化,包括:
所述服务器节点接收到取消服务请求时,确定该服务器节点上的服务提供者发生变化,其中,所述取消服务请求用于指示一个或多个服务提供者退出服务;
其中,所述服务器节点接收取消服务请求,包括:
所述服务器节点接收服务注册端发送的取消服务请求,其中,所述取消服务请求为所述服务注册端在检测到所述服务提供者与该服务注册端断开连接后发送的请求;
所述服务器节点接收所述服务注册端发送的取消服务请求之前,还包括:
所述服务注册端实时检测与所述服务提供者的连接;
所述服务注册端在检测到所述服务提供者与该服务注册端断开连接时,向所述服务器节点发送所述取消服务请求。
2.根据权利要求1所述的方法,其特征在于,
所述服务器节点接收到服务提供者通过服务注册端发送的注册服务请求之后,还包括:所述服务器节点将所述服务提供者注册到所述服务器节点;
所述服务器节点向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,包括:所述服务器节点向关注所述服务提供者提供服务的服务消费者,推送指示所述服务的服务提供者增加的服务变化消息。
3.根据权利要求2所述的方法,其特征在于,推送指示所述服务的服务提供者增加的服务变化消息之后,还包括:
所述服务消费者获取当前服务提供者信息;
所述服务消费者依据所述当前服务提供者信息选取所述服务的服务提供者。
4.根据权利要求1至3中任一项所述的方法,其特征在于,注册服务请求携带的信息包括以下至少之一:
所述服务提供者的标识、所述服务提供者的配置信息、所述服务提供者提供服务的有效时间。
5.根据权利要求1所述的方法,其特征在于,
所述服务器节点接收到取消服务请求之后,还包括:所述服务器节点从所述服务器节点上删除所述取消服务请求所指示的服务提供者;
所述服务器节点向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,包括:所述服务器节点向关注所述服务提供者提供服务的服务消费者,推送指示所述服务的服务提供者减少的服务变化消息。
6.根据权利要求1所述的方法,其特征在于,
所述服务器节点接收到服务提供者发送更改所述服务提供者的信息的消息之后,还包括:所述服务器节点在所述服务器节点上更新所述服务提供者的信息;
所述服务器节点向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,包括:所述服务器节点向关注所述服务提供者提供服务的服务消费者,推送指示所述服务的服务提供者的信息更新的服务变化消息。
7.一种服务变化消息的推送装置,位于服务器节点,其特征在于,包括:
确定模块,用于确定该服务器节点上的服务提供者发生变化,其中,所述服务器节点为分布式协作服务系统中的节点;
推送模块,用于向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,其中,所述服务变化消息用于指示所述服务提供者的变化信息;
所述确定模块,用于在接收到取消服务请求时,确定该服务器节点上的服务提供者发生变化,其中,所述取消服务请求用于指示一个或多个服务提供者退出服务;
所述确定模块按照以下方式接收所述取消服务请求:
接收服务注册端发送的取消服务请求,其中,所述取消服务请求为所述服务注册端在检测到所述服务提供者与该服务注册端断开连接后发送的请求;
接收所述服务注册端发送的取消服务请求之前,还包括:
所述服务注册端实时检测与所述服务提供者的连接;
所述服务注册端在检测到所述服务提供者与该服务注册端断开连接时,向所述服务器节点发送所述取消服务请求。
8.一种服务器节点,其特征在于,包括:权利要求7中所述的装置。
9.一种服务变化消息的推送系统,其特征在于,包括:服务器节点、服务消费者,其中,
所述服务器节点,用于确定该服务器节点上的服务提供者发生变化,以及向关注所述服务提供者提供的服务的服务消费者推送服务变化消息,其中,所述服务变化消息用于指示所述服务提供者的变化信息;
所述服务消费者,用于通过服务订阅端接收所述服务变化消息,并根据所述服务变化消息选取服务提供者;
其中,所述服务器节点确定该服务器节点上的服务提供者发生变化,包括:
所述服务器节点接收到取消服务请求时,确定该服务器节点上的服务提供者发生变化,其中,所述取消服务请求用于指示一个或多个服务提供者退出服务;
其中,所述服务器节点接收取消服务请求,包括:
所述服务器节点接收服务注册端发送的取消服务请求,其中,所述取消服务请求为所述服务注册端在检测到所述服务提供者与该服务注册端断开连接后发送的请求;
所述服务器节点接收所述服务注册端发送的取消服务请求之前,还包括:
所述服务注册端实时检测与所述服务提供者的连接;
所述服务注册端在检测到所述服务提供者与该服务注册端断开连接时,向所述服务器节点发送所述取消服务请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210212957.3A CN103516746B (zh) | 2012-06-26 | 2012-06-26 | 服务变化消息的推送方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210212957.3A CN103516746B (zh) | 2012-06-26 | 2012-06-26 | 服务变化消息的推送方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103516746A CN103516746A (zh) | 2014-01-15 |
CN103516746B true CN103516746B (zh) | 2019-02-19 |
Family
ID=49898775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210212957.3A Active CN103516746B (zh) | 2012-06-26 | 2012-06-26 | 服务变化消息的推送方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103516746B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763582B (zh) * | 2014-12-16 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 用于切换服务注册设备的方法、设备及系统 |
CN107317830B (zh) * | 2016-04-26 | 2021-05-18 | 中兴通讯股份有限公司 | 一种服务发现的处理方法及装置 |
CN105872110B (zh) * | 2016-06-17 | 2019-07-05 | 深圳纽博时代科技有限公司 | 一种云平台服务管理方法及装置 |
CN110324372A (zh) * | 2018-03-29 | 2019-10-11 | 中国移动通信有限公司研究院 | 一种服务调用方法、装置、介质、设备和系统 |
CN110366144A (zh) * | 2018-04-09 | 2019-10-22 | 华为技术有限公司 | 一种订阅服务的方法及装置 |
CN110072273B (zh) * | 2019-05-06 | 2022-02-15 | 腾讯科技(深圳)有限公司 | 一种通信方法、装置、实体及存储介质 |
CN113055415A (zh) * | 2019-12-26 | 2021-06-29 | 阿里巴巴集团控股有限公司 | 服务提供方法、服务消费方法、装置及设备 |
CN114268619B (zh) * | 2020-09-15 | 2024-06-28 | 英业达科技有限公司 | 依据识别数据选择镜像服务器以取得数据的系统及方法 |
CN114520832B (zh) * | 2020-11-19 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 一种数据流处理方法、装置、设备及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647479A (zh) * | 2001-11-30 | 2005-07-27 | 皇家飞利浦电子股份有限公司 | 用服务推式模型增强的普遍描述、发现和集成 |
CN102202102A (zh) * | 2011-07-05 | 2011-09-28 | 施昊 | 基于云计算架构的网络服务聚合系统及其聚合方法 |
CN102355632A (zh) * | 2011-09-30 | 2012-02-15 | 宇龙计算机通信科技(深圳)有限公司 | 一种状态信息获取方法、系统、移动终端及服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8260864B2 (en) * | 2008-02-13 | 2012-09-04 | Microsoft Corporation | Push mechanism for efficiently sending aggregated data items to client |
-
2012
- 2012-06-26 CN CN201210212957.3A patent/CN103516746B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647479A (zh) * | 2001-11-30 | 2005-07-27 | 皇家飞利浦电子股份有限公司 | 用服务推式模型增强的普遍描述、发现和集成 |
CN102202102A (zh) * | 2011-07-05 | 2011-09-28 | 施昊 | 基于云计算架构的网络服务聚合系统及其聚合方法 |
CN102355632A (zh) * | 2011-09-30 | 2012-02-15 | 宇龙计算机通信科技(深圳)有限公司 | 一种状态信息获取方法、系统、移动终端及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN103516746A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103516746B (zh) | 服务变化消息的推送方法、装置及系统 | |
CN110401696B (zh) | 一种去中心化处理的方法、通信代理、主机以及存储介质 | |
CN105760214B (zh) | 一种设备状态及资源信息监测方法、相关设备及系统 | |
CN102760074B (zh) | 用于高负荷业务流程可扩展性的方法及其系统 | |
CN105827446B (zh) | 一种智能交通api网关及智能交通业务系统 | |
CN108431778A (zh) | 对虚拟桌面实例池的管理 | |
EP3125117A1 (en) | Update management system and update management method | |
CN109547570A (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
CN107209710A (zh) | 节点系统、服务器设备、缩放控制方法和程序 | |
CN109565515A (zh) | 分布式资源管理系统中的动态租户结构调整的系统、设备和过程 | |
CN106327113A (zh) | 自动推送配送信息、提供揽收信息的方法、终端和服务器 | |
CN106797392A (zh) | M2m‑iot服务的发布和发现 | |
CN103974140B (zh) | 一种基于tr069协议的大规模交互电视终端管理方法及系统 | |
CN109474936A (zh) | 应用于多个lora网关之间的物联网通讯方法及系统 | |
CN111090587A (zh) | 投产点服务测试方法、装置、设备及存储介质 | |
CN109639782A (zh) | 消息发送平台、方法 | |
CN108777640A (zh) | 一种服务器探测方法、装置、系统及存储介质 | |
CN109656725A (zh) | 消息消费者切换方法、装置、存储介质及电子设备 | |
CN108199860A (zh) | 一种告警处理方法及网络设备 | |
CN104426956B (zh) | 一种终端状态订阅方法、装置及系统 | |
CN105872110A (zh) | 一种云平台服务管理方法及装置 | |
CN114217981A (zh) | 银企直连的通信方法、装置、计算机设备和存储介质 | |
CN104967532B (zh) | Toc技术运维系统及应用方法 | |
JP5485946B2 (ja) | 仮想化ホームゲ−トウェイシステム | |
CN104219280B (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 |