CN104092718B - 分布式***及分布式***中配置信息的更新方法 - Google Patents

分布式***及分布式***中配置信息的更新方法 Download PDF

Info

Publication number
CN104092718B
CN104092718B CN201310687405.2A CN201310687405A CN104092718B CN 104092718 B CN104092718 B CN 104092718B CN 201310687405 A CN201310687405 A CN 201310687405A CN 104092718 B CN104092718 B CN 104092718B
Authority
CN
China
Prior art keywords
configuration information
configuration
component
client
renewal
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
Application number
CN201310687405.2A
Other languages
English (en)
Other versions
CN104092718A (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.)
Tencent Cyber Tianjin Co Ltd
Original Assignee
Tencent Cyber Tianjin 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 Tencent Cyber Tianjin Co Ltd filed Critical Tencent Cyber Tianjin Co Ltd
Priority to CN201310687405.2A priority Critical patent/CN104092718B/zh
Publication of CN104092718A publication Critical patent/CN104092718A/zh
Application granted granted Critical
Publication of CN104092718B publication Critical patent/CN104092718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种分布式***及分布式***中配置信息的更新方法。所述***包括配置客户端、服务器集群、配置信息的更新装置和至少一个订阅客户端;服务器集群用于存储配置信息;其中配置信息的更新装置用于对服务器集群进行监听,判断服务器集群中是否发生配置信息改变事件;在发生配置信息改变事件时,从服务器集群中获取更新的配置信息;并向各订阅客户端发送包括更新的配置信息的消息;且还用于确认各订阅客户端是否成功收到更新的配置信息。本发明通过配置信息的更新装置来确认订阅客户端是否成功收到更新的配置信息,能够及时地确定订阅客户端是否能够成功更新配置信息,克服现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。

Description

分布式***及分布式***中配置信息的更新方法
技术领域
本发明涉及计算机技术领域,特别涉及一种分布式***及分布式***中配置信息的更新方法。
背景技术
在分布式***如分布式实时计算***中,各分布式组件往往分布在不同的服务器节点中,为了各分布式组件之间能够正确的协作,往往需要共享一些配置信息,并需要配置信息能够被动态的修改和快速同步。
现有的分布式***中,各分布式组件同步配置信息的技术一般借用ZooKeeper提供的高可用性和事件通知机制实现。ZooKeeper是一个针对大型分布式***的可靠协调***,提供的功能包括配置维护、名字服务、分布式同步以及组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的***提供给用户。图1为现有的分布式计算***中采用ZooKeeper更新配置信息的场景图。通过一个客户端(Client)连接ZooKeeper集群将配置信息存放在ZooKeeper集群的一个节点服务器(service)或者多个节点服务器(service)上,如图1所示,以ZooKeeper集群包括三个节点服务器A、服务器B和服务器C,包括六个客户端(Client)客户端A、客户端B、客户端C、客户端D、客户端E和客户端F为例,描述配置信息的更新流程。具体可以包括如下步骤:1、客户端E作为配置客户端将配置信息写入至ZooKeeper集群中服务器B和服务器C中。2、需要配置信息的分布式组件客户端A、客户端B、客户端C、客户端D和客户端F分别作为订阅客户端连接ZooKeeper集群去读取并订阅这个配置信息,所谓订阅也就是利用ZooKeeper本身提供的事件通知机制监听存储了配置信息的ZooKeeper集群中的服务器B和服务器C节点中配置信息的改变。3、当配置信息更改的时候相应订阅配置信息的组件会接收到一个节点配置信息改变事件,订阅者可以根据这个事件,去ZooKeeper上获取最新的节点数据也就是配置信息。4、得到新的配置信息的客户端会及时更新和同步最新的配置信息,然后做出相应的改变。各客户端(Client)与ZooKeeper集群中的服务器节点是通过ZooKeeper提供的心跳机制保持连接的。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:上述现有技术的分布式***中配置信息的更新过程中,ZooKeeper的通知机制是一次性的,通知一次后,订阅的客户端会被取消,而订阅的客户端是否收到通知以及更新配置信息成功与否均得不到保证。而只有当订阅客户端长时间未接收到通知,此时需要订阅的客户端再次去订阅,也就是再次向ZooKeeper相应的配置节点服务器注册事件监听。因此,现有的分布式***中配置信息的更新方案可靠性较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种分布式***及分布式***中配置信息的更新方法。所述技术方案如下:
一方面,提供了一种分布式***,所述***包括配置客户端、服务器集群、配置信息的更新装置和至少一个订阅客户端;所述服务器集群,用于存储配置信息;所述服务器集群中包括至少一台服务器;
所述配置客户端,与所述服务器集群中的各所述服务器进行通信,用于更新所述服务器集群中的所述配置信息;
所述配置信息的更新装置,用于对所述服务器集群进行监听,判断所述服务器集群中是否发生配置信息改变事件;
所述配置信息的更新装置,还用于当发生配置信息改变事件时,从所述服务器集群中获取更新的配置信息;
所述配置信息的更新装置,还用于向各所述订阅客户端发送包括所述更新的配置信息的消息;
所述配置信息的更新装置,还用于确认各所述订阅客户端是否成功收到所述更新的配置信息;
各所述订阅客户端,分别与所述配置信息的更新装置连接,用于接收所述配置信息的更新装置发送的包括所述更新的配置信息的消息。
另一方面,提供了一种分布式***中配置信息的更新方法,所述分布式***包括配置客户端、服务器集群、配置信息的更新装置和至少一个订阅客户端;所述方法包括:
所述配置客户端更新所述服务器集群中的配置信息;
所述配置信息的更新装置对所述服务器集群进行监听,判断所述服务器集群中是否发生配置信息改变事件;
当发生配置信息改变事件时,所述配置信息的更新装置从所述服务器集群中获取更新的配置信息;
所述配置信息的更新装置向各所述订阅客户端发送包括所述更新的配置信息的消息;
所述配置信息的更新装置确认各所述订阅客户端是否成功收到所述更新的配置信息。
本发明实施例的分布式***及分布式***中配置信息的更新方法,当配置客户端更新服务器集群中的配置信息,由配置信息的更新装置对服务器集群进行监听,判断服务器集群中是否发生配置信息改变事件;当发生配置信息改变事件时,配置信息的更新装置从服务器集群中获取更新的配置信息;向各订阅客户端发送包括更新的配置信息的消息;并确认订阅客户端是否成功收到更新的配置信息。本发明实施例的技术方案中,配置信息的更新装置还用来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的分布式计算***中采用ZooKeeper更新配置信息的场景图。
图2为本发明一实施例提供的分布式***的结构示意图。
图3为本发明另一实施例提供的分布式***的结构示意图。
图4为本发明再一实施例提供的分布式***的结构示意图。
图5为本发明实施例提供的分布式***中配置信息更新过程示意图。
图6为本发明一实施例提供的分布式***中配置信息的更新方法的流程图。
图7为本发明另一实施例提供的分布式***中配置信息的更新方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图2为本发明一实施例提供的分布式***的结构示意图。如图2所示,本实施例的分布式***具体可以包括配置客户端20、服务器集群30、配置信息的更新装置40和至少一个订阅客户端50。
其中服务器集群30用于存储配置信息;服务器集群中30包括至少一台服务器;配置客户端20与服务器集群30中的各服务器进行通信,用于更新服务器集群30中的配置信息;例如可以更新服务器集群30中每一台或者多台服务器中的配置信息。本实施例中的更新可以包括新写入或者修改等等操作。
配置信息的更新装置40与服务器集群30连接,对服务器集群30进行监控,判断服务器集群30中是否发生配置信息改变事件;具体地,配置信息的更新装置40与服务器集群30中的各服务器通信,对服务器集群30中的各服务器31进行监控,判断各服务器中是否发生配置信息改变事件。在发生配置信息改变事件时,配置信息的更新装置40从发生配置信息改变事件的服务器集群30中的服务器中获取更新的配置信息,并向各订阅客户端50发送包括更新的配置信息的消息。
对应地,各订阅客户端50与配置信息的更新装置40连接,各订阅客户端50用于接收配置信息的更新装置40发送的包括更新的配置信息的消息。配置信息的更新装置40与各订阅客户端50连接,配置信息的更新装置40确认订阅客户端50是否成功收到配置信息的更新装置40发送的更新的配置信息。本实施例中的各订阅客户端50相当于分布式***中的分布式组件,各分布式组件进行业务处理时,需要及时获取到更新的配置信息,因此也可以被称为分布式***中的计算组件或者处理组件。
本实施例的分布式***,当配置客户端更新服务器集群中的配置信息,由配置信息的更新装置对服务器集群进行监听,判断服务器集群中是否发生配置信息改变事件;当发生配置信息改变事件时,配置信息的更新装置从服务器集群中获取更新的配置信息;向各订阅客户端发送包括更新的配置信息的消息;并确认订阅客户端是否成功收到更新的配置信息。本实施例的技术方案中,配置信息的更新装置还用来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。
可选地,配置信息的更新装置40,还用于在从发生配置信息改变事件的服务器中获取更新的配置信息后,并生成配置信息标识,该配置信息标识用于唯一标识向该订阅客户端50发送的配置信息。此时配置信息的更新装置40,具体用于向订阅客户端50发送包括更新的配置信息和配置信息标识的消息,并在自身内部建立配置信息标识和订阅客户端50的标识的映射关系。
对应地,在订阅客户端50侧,订阅客户端50,用于接收配置信息的更新装置40发送的包括更新的配置信息和配置信息标识的消息,并根据消息中的更新的配置信息更新自身的配置信息,并从消息中获取配置信息标识,然后向配置信息的更新装置40发送包括配置信息标识和该订阅客户端50的标识的响应消息。
进一步可选地,配置信息的更新装置40,还用于接收订阅客户端50发送包括配置信息标识和该订阅客户端50的标识的响应消息。并根据响应消息中的订阅客户端50的标识找到对应的配置信息标识和订阅客户端50的标识的映射关系,从中获取配置信息标识;然后将本地存储的映射关系中的配置信息标识和订阅客户端50发送的配置信息标识进行比较,判断两者是否相同,若相同,确定订阅客户端50更新配置信息成功,否则确定订阅客户端50更新配置信息不成功。若确定订阅客户端50更新配置信息不成功,此时配置信息的更新装置40,还用于重新向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。即本实施例的分布式***提供有重发机制。
进一步可选地,配置信息的更新装置40,还用于若在预设时间段内未接收订阅客户端50反馈的响应消息时,确定订阅客户端50未成功接收到配置信息;此时配置信息的更新装置40,还用于重新向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。即本实施例的分布式***提供有延迟并重发的方案。
下述实施例在分布式***的一种具体的工作流程中详细介绍分布式***工作原理,该实施例中以向一个订阅客户端50发送更新的配置信息为例来说明本发明的技术方案。
配置客户端20对服务器集群30中的各个服务器进行监控,判断各服务器中是否发生配置信息改变事件。在发生配置信息改变事件时,配置信息的更新装置40从发生配置信息改变事件的服务器中获取更新的配置信息,并生成配置信息标识,该配置信息标识用于唯一标识向该订阅客户端50发送的配置信息;然后配置信息的更新装置40向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。配置信息的更新装置40建立配置信息标识和订阅客户端50的标识的映射关系。
当订阅客户端50收到配置信息的更新装置40发送的包括更新的配置信息和配置信息标识的消息时,根据消息中的更新的配置信息更新自身的配置信息,并从消息中获取配置信息标识,然后向配置信息的更新装置40发送包括配置信息标识和该订阅客户端50的标识的响应消息。配置信息的更新装置40根据响应消息中的订阅客户端50的标识找到对应的配置信息标识和订阅客户端50的标识的映射关系,从中获取配置信息标识;然后将本地存储的映射关系中的配置信息标识和订阅客户端50发送的配置信息标识进行比较,判断两者是否相同,若相同,确定订阅客户端50更新配置信息成功,否则确定订阅客户端50更新配置信息不成功。若确定订阅客户端50更新配置信息不成功,此时配置信息的更新装置40重新向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。由此可知,本实施例的分布式***在更新配置信息的过程中提供了配置信息的重发机制,提高了更新配置信息的效率。
而且配置信息的更新装置40若在预设时间段内未接收订阅客户端50反馈的响应消息时,确定订阅客户端50未成功接收到配置信息;此时配置信息的更新装置40重新向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。由于可知,本实施例的分布式***提供了延迟并重发的方案,提高了更新配置信息的效率。
本实施例的分布式***,通过配置信息的更新装置来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。而且在更新配置信息的过程中提供了配置信息的重发机制,能够在确定订阅客户端未成功收到更新的配置信息时,重新向订阅客户端发生更新的配置信息,而不用订阅客户端重新去订阅,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。进一步地,还在更新配置信息方案中提供了延迟方案,在预设时间段过后,若未收到响应消息,重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。
而且现有技术中,当订阅者过多时,会对造成对一个节点的数据大量的监听和读写,很容易导致配置信息更新延迟或者失败的情况发生,而本发明实施例中的配置组件和确认组件可以分离,并各自还可以进行线性分布式扩展,从而能够分散工作,避免将监听以及读写工作负载在同一个节点上,能够及时有效地对配置信息进行更新。
图3为本发明另一实施例提供的分布式***的结构示意图。如图3所示,本实施例的分布式***在上所述图2所示实施例的基础上,对配置信息的更新装置进行进一步更加具体的说明。如图3所示的本实施例的配置信息的更新装置40中包括配置组件10和确认组件11。配置组件10用于对服务器集群30进行监听,判断服务器集群30中是否发生配置信息改变事件;配置组件10还用于当发生配置信息改变事件时,从服务器集群30中获取更新的配置信息;配置组件10还用于向订阅客户端50发送包括更新的配置信息的消息;确认组件11用于确认订阅客户端50是否成功收到配置组件10发送的更新的配置信息。
需要说明的是,为了增加处理效率,配置信息的更新装置40中也可以包括多个配置组件10和多个确认组件11,本实施例中均以一个为例来说明。而且如图3所示,本实施例的以分布式***的服务器集群30中包括至少一台服务器31;为例,配合客户端20与各服务器31连接,可以对各服务器31中的配置信息进行更新。本实施例的分布式***中,其中配置信息的更新装置40中配置组件10对分布式***中存储配置信息的服务器集群30进行监听,该服务器集群30中可以包括一台或者多台服务器31。具体地,配置组件10与服务器集群30中的每台服务器31连接,配置组件10可以对服务器集群30中的每台服务器31进行监听,以判断服务器集群30中是否发生配置信息改变事件,其中配置信息改变事件也就是判断服务器集群30中的配置信息是否发生变化,发生变化即为配置信息改变事件。当发生配置信息改变事件时,配置组件10从服务器集群30中发生配置信息改变事件的服务器31中获取更新的配置信息;并向订阅客户端50发送包括更新的配置信息的消息。本实施例中的订阅客户端50即为分布式***中的各个分布式组件,各分布式组件即订阅客户端50在业务处理中需要及时更新该配置信息,并进行业务计算,因此也可以计算组件或者处理组件。因此,当配置信息发生改变时,需要该配置组件及时向订阅客户端50发送更新的配置信息,以供订阅客户端50及时更新自身中的配置信息。
本实施例中的确认组件11可以与订阅客户端通50信,对订阅客户端50进行追踪,确认订阅客户端50是否成功收到配置组件10发送的更新的配置信息。例如确认组件11可以询问订阅客户端50,确认其是否成功接收到配置组件10发送的更新的配置信息。或者也可以与订阅客户端50约定,在订阅客户端50成功接收到配置组件10发送的更新的配置信息时。向确认组件11发送一个确认信息,以告知确认组件11订阅客户端成功接收到配置组件10发送的更新的配置信息。或者确认组件11也可以采用方式实现对订阅客户端50的跟踪,确认订阅客户端50是否成功收到配置组件10发送的更新的配置信息,在此不再赘述。
本实施例中,配置组件10用于向订阅客户端50发送更新的配置信息,确认组件11用于对订阅客户端50进行追踪,确认订阅客户端50是否成功收到配置组件10发送的更新的配置信息,配置组件10和确认组件11可以分布式同时工作,提高配置信息更新装置的工作效率。
本实施例的分布式***配置信息的更新装置,通过由配置信息的更新装置的配置组件对服务器集群进行监听,判断服务器集群中是否发生配置信息改变事件;当发生配置信息改变事件时,配置组件从服务器集群中获取更新的配置信息;配置组件向订阅客户端发送包括更新的配置信息的消息;确认组件确认订阅客户端是否成功收到配置组件发送的更新的配置信息。本实施例的技术方案中,通过配置信息的更新装置的确认组件来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。
而且现有技术中,当订阅者过多时,会对造成对一个节点的数据大量的监听和读写,很容易导致配置信息更新延迟或者失败的情况发生,而本发明实施例中的配置组件和确认组件可以分离,并各自还可以进行线性分布式扩展,从而能够分散工作,避免将监听以及读写工作负载在同一个节点上,能够及时有效地对配置信息进行更新。
进一步可选地,在上述实施例的技术方案的基础上,配置组件10还用于生成配置信息标识,配置信息标识用于唯一标识向订阅客户端50发送的配置信息;配置组件10具体用于向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。
配置组件10在获取配置信息之后,向订阅客户端50发送配置信息之前,可以先为向该订阅客户端50发送的该配置信息生成一个配置信息标识,该配置信息标识可以根据实际需求设置长度,例如可以为64位,或者32位或者其他长度等等。这样配置组件10发送的该更新的配置信息就是唯一的。
进一步可选地,在上述实施例的技术方案的基础上,配置组件10与确认组件11连接,配置组件10还用于向确认组件11发送包括配置信息标识。这样,确认组件11可以根据该唯一标识向该订阅客户端50发送的更新的配置信息的配置信息标识来跟踪该订阅客户端50,确认该订阅客户端50是否成功接收到配置组件110发送的该更新的配置信息。
需要说明的是,为了提高处理效率,图3所示的分布式***中的配置信息的更新装置40中的配置组件10也可以是多个,这样,配置组件10还需要向确认组件11发送配置组件10的标识,这样,当后续确认组件11向配置组件10反馈响应消息时,可以向该配置组件10的标识对应的配置组件发送响应消息即可。
进一步可选地,确认组件11还用于接收订阅客户端50发送的包括配置信息标识的响应消息,订阅客户端50发送的配置信息标识为订阅客户端50从接收配置组件发送的消息中获取的;确认组件11具体用于根据配置组件10发送的配置信息标识和订阅客户端50发送的配置信息标识,确认订阅客户端50是否成功收到更新的配置信息。
例如根据上述记载可知,当订阅客户端50接收到配置组件10发送的包括更新的配置信息和配置信息标识的消息之后,可以获取到该配置信息标识,然后向确认组件11反馈包括该配置信息标识的响应消息。这样确认组件11就接收到两个配置信息标识,一个是配置组件10发送的,另一个是订阅客户端50发送的,此时确认组件11可以根据接收到的这两个配置信息标识来判断订阅客户端50是否成功接收到更新的配置信息。例如确认组件11具体用于判断配置组件10发送的配置信息标识和订阅客户端50发送的配置信息标识是否相同,若相同,确定订阅客户端50成功收到配置组件发送的更新的配置信息;否则,则确定订阅客户端50未成功收到配置组件发送的更新的配置信息。
进一步地,确认组件11判断配置组件10发送的配置信息标识和订阅客户端50发送的配置信息标识是否相同时,具体可以采用如下方式:
确认组件11对配置组件10发送的配置信息标识和订阅客户端50发送的配置信息标识进行异或(exclusive OR;简写为XOR)操作,得到确认值,并判断确认值是否为0,若为0,确定配置组件10发送的消息中的配置信息标识和订阅客户端50发送的返回的配置信息标识相同,此时订阅客户端50成功更新配置信息;否则不相同,此时订阅客户端50未成功更新配置信息。
需要说明的是,当多个订阅客户端50同时订阅配置信息时,此时配置组件10时需要对各个订阅客户端50进行追踪,此时配置组件10除了向确认组件11发送配置信息标识和配置组件10的标识之外,还向确认组件10发送用于接收该更新的配置信息的订阅客户端50的标识,便于确认组件11跟踪该订阅客户端50。在确认组件11中配置信息标识、确认组件11的标识以及订阅客户端的50标识可以采用映射的方式存储。当订阅客户端50向确认组件11反馈的响应消息中除了包括配置信息标识之外,也还包括订阅客户端50的标识,这样,在确认组件11中可以根据订阅客户端50的标识以及存储的配置信息标识、确认组件11的标识以及订阅客户端50的标识映射,获取到配置组件10发送的配置信息的标识,然后再对配置组件10发送的配置信息标识和订阅客户端50发送的配置信息标识进行判断处理。
进一步可选地,在上述实施例的技术方案的基础上,其中确认组件11还用于在确定订阅客户端50成功收到配置组件发送的更新的配置信息时,向配置组件10发送订阅客户端50成功接收到配置信息的响应消息。这样配置组件10便可以得知发送给订阅客户端50的更新的配置信息已经发送成功,订阅客户端50也已经更新成功,提高了分布式***中更新配置信息的可靠性。
或者可选地,在上述实施例的技术方案的基础上,确认组件11还用于确定订阅客户端50未成功收到配置组件发送的更新的配置信息时,向配置组件10发送订阅客户端50未成功接收到配置信息的响应消息;此时对应地,配置组件10还用于在接收到确认组件11发送的订阅客户端50未成功接收到配置信息的响应消息后,重新向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。例如确认组件11对配置组件10发送的配置信息标识和订阅客户端50发送的配置信息标识进行XOR操作得到确认值不为0时,可以向配置组件10发送订阅客户端50未成功接收到配置信息的响应消息;此时对应地,配置组件10重新向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。
现有技术的分布式***中配置信息的更新过程中,ZooKeeper的通知机制是一次性的,通知一次后,订阅的客户端会被取消,而订阅的客户端是否收到通知以及更新配置信息成功与否均得不到保证。而只有当订阅客户端长时间未接收到通知,此时需要订阅的客户端再次去订阅,也就是再次向ZooKeeper相应的配置节点服务器注册事件监听。由此可知,现有的配置信息的更新方案中,通知机制是一次性的,当订阅客户端第一次未成功接收到更新的配置信息时,不支持重发,而需要订阅客户端重新订阅过程非常复杂,效率较低。而采用上述实施例的技术方案,在更新配置信息的过程中提供了配置信息的重发机制,能够在确定订阅客户端未成功收到配置组件发送的更新的配置信息时,重新向订阅客户端发生更新的配置信息,而不用订阅客户端重新去订阅,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。
进一步可选地,在上述实施例的技术方案的基础上,其中配置组件10还用于若在预设时间段内未接收到确认组件11发送的订阅客户端50成功或者未成功接收到配置信息的响应消息时,确定订阅客户端50未成功接收到配置信息;此时配置组件10还用于重新向订阅客户端50发送包括更新的配置信息和配置信息标识的消息。
通过采用上述方案,本发明提供的更新配置信息方案还提供了延迟方案,若配置组件在预设时间段内未接收到确认组件发送的订阅客户端成功或者未成功接收到配置信息的响应消息时,确定订阅客户端未成功接收到配置信息;此时配置组件重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息。与现有技术相比,也不需要订阅客户端重新订阅配置信息,而直接在预设时间段过后,若未收到响应消息,重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。
上述实施例的所有技术方案可以采用可以结合的方式任意组合,形成本发明的可选实施例,在此不再一一举例说明。
上述实施例的技术方案,通过确认组件来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。而且在更新配置信息的过程中提供了配置信息的重发机制,能够在确定订阅客户端未成功收到配置组件发送的更新的配置信息时,重新向订阅客户端发生更新的配置信息,而不用订阅客户端重新去订阅,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。进一步地,还在更新配置信息方案中提供了延迟方案,在预设时间段过后,若未收到响应消息,重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。
而且现有技术中,当订阅者过多时,会对造成对一个节点的数据大量的监听和读写,很容易导致配置信息更新延迟或者失败的情况发生,而本发明实施例中的配置组件和确认组件可以分离,并各自还可以进行线性分布式扩展,从而能够分散工作,避免将监听以及读写工作负载在同一个节点上,能够及时有效地对配置信息进行更新。
图4为本发明再一实施例提供的分布式***的结构示意图。如图4所示,本实施例的分布式***在上述图2及图3所示实施例的基础上,以一个具体地应用场景介绍本发明的技术方案。
如图4所示,本实施例的服务器集群30可以采用ZooKeeper集群30’来实现,该ZooKeeper集群30’是一个高可用的分布式数据管理与***协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,只要不超过半数的服务器当机(如果正常服务的服务器数目不足一半,那么原有的集群将可能被划分成两个信息无法一致的zookeeper服务),该服务就能正常运行,因此利用Zookeeper保证了配置信息的可靠存储。此时对应地,用户可以通过配置客户端20将配置信息写入ZooKeeper上存储配置信息的服务器节点,或者更改存储在这个服务器节点上的配置信息。
本实施例中的配置信息的更新装置40可以利用Storm流式计算平台来实现,Storm流式计算平台提供的Spout接口(也就是数据源读取接口)实现一个ConfigSpout组件10’用于实现配置组件10的功能,用于监听ZooKeeper集群中存储配置信息的节点的数据改变事件,并实时的读取最新的配置信息并把配置信息包装为一个可序化的对象,然后利用Storm流式计算平台提供的流式数据接口,将配置信息作为名为config_stream的流发送出去,例如该config_stream中包括配置信息和配置信息标识。确认组件11可以采用Storm流式计算平台中设计Acker组件11’来实现,负责配置信息更新成功的确认以及当更新失败时通知ConfigSpout组件10’把配置信息进行超时重发,订阅客户端50可以采用Storm流式计算平台中设计的Bolt组件50’来实现,图4中以包括三个Bolt组件50’为例来说明本发明的技术方案。Bolt组件50’为订阅配置信息的分布式计算组件,Storm流式计算平台负责ConfigSpout组件10’,Acker组件11’和Bolt组件50’等的容错和分布式功能。
配置信息的Bolt组件50’(分布式计算组件接口)以AllGrouping(广播)的方式订阅ConfigSpout组件10’的config_stream,并利用Storm流式计算平台提供的ConfigSpout组件10’到Bolt组件50’的实时转发功能使得订阅者实时的得到最新的配置信息并及时的更新自己的配置。
由于ConfigSpout组件10’,Bolt组件50’以及Acker组件11’都是Storm流式计算平台中标准的组件,因此都是可以分布式线性扩展的,再通过Storm流式计算平台提供的心跳机制。而且Storm流式计算平台中还有其处理器,用于当某个组件停止提供服务时,Storm流式计算平台中的该处理器会相应的重新拉起这个组件,从而进行容错处理。
当Bolt组件50’更新完成配置时,需要给Acker组件11’发送一条确认更新成功的响应消息,该响应消息中可以包括配置信息标识。Acker组件11’会按照一定的算法进行确认信息的计算,当Acker组件11’收到了Bolt组件50’更新完成配置的确认信息时,会通知ConfigSpout组件10’当前发送的配置信息,Bolt组件50’已经更新完成,如果在可配置的一段时间内,ConfigSpout组件10’一直没有收到Acker组件11’发送过来的配置更新成功信息,则ConfigSpout组件10’会将最新的配置信息重新发送一份。
本实施例中,ConfigSpout组件10’可以向多个Bolt组件50’发送配置信息,就像一个Tuple树的结构。以图5所示的分布式***中配置信息更新过程示意图为例,图5以ConfigSpout组件10’向三个Bolt组件50’发送配置信息为例。本实施例中Acker组件11’负责跟踪ConfigSpout组件10’发出的每一个包含配置信息的Tuple。当一个tuple被ConfigSpout组件10’创建时,它可以被赋予一个64位的spout-tuple-id即配置信息标识也携带在Tuple中发送给Bolt组件50’。同时ConfigSpout组件10’将64位的spout-tuple-id发送给Acker组件11’,Acker组件11’就是利用这个spout-tuple-id去跟踪与这个包含配置信息的Tuple相关联的Bolt组件50’,由于Bolt组件50’在更新配置信息完成后会给Acker组件11’发送一个响应信息,并在响应消息中携带接收ConfigSpout组件10’发送的消息中的64位的spout-tuple-id。
需要说明的是,ConfigSpout组件10’还要将该ConfigSpout组件10’的标识也发送给Acker组件11’,这样在Acker组件11’中可以存储了一个spout-tuple-id到一对值的一个映射。这对值的第一个值是创建这个tuple的ConfigSpout组件10’的id,这个是用来在完成处理tuple的时候发送消息用的,其中对一个订阅客户端50配置信息进行更新的过程为一个tuple。第二个值是一个64位的ackval”,ack val是整个tuple的状态的一个表示,它只是简单地把spout-tuple-id对应的Bolt组件50’回复的tupleidspout-tuple-id即配置信息标识和ConfigSpout组件10’发送的tupleidspout-tuple-id即配置信息标识一起异或(XOR)。当Acker组件11’发现ack val变成0了,Acker组件11’确定spout-tuple-id对应的配置信息Tuple已经被Bolt组件50’处理完成了,Acker组件11’就可以通知Config Spout 组件10’spout-tuple-id对应的Bolt组件50’已经更新配置信息成功。当处理完后,Acker组件11’发现ack val不为0了,Acker组件11’可以通知Config Spout组件10’spout-tuple-id对应的Bolt组件50’更新配置信息不成功,ConfigSpout组件10’将最新的配置信息重新发送给Bolt组件50’一份。即本实施例方案中支持重发配置信息的机制。ConfigSpout组件10’还用于在预设时间段内未收到Acker组件11’的任何消息时,将最新的配置信息重新发送给Bolt组件50’一份。即本实施例方案中支持延迟并重发配置信息的机制。
本实施例的分布式***,通过配置信息的更新装置中的确认组件来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。而且在更新配置信息的过程中提供了配置信息的重发机制,能够在确定订阅客户端未成功收到配置组件发送的更新的配置信息时,重新向订阅客户端发生更新的配置信息,而不用订阅客户端重新去订阅,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。进一步地,还在更新配置信息方案中提供了延迟方案,在预设时间段过后,若未收到响应消息,重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。而且现有技术中,当订阅者过多时,会对造成对一个节点的数据大量的监听和读写,很容易导致配置信息更新延迟或者失败的情况发生,而本发明实施例中的配置组件和确认组件可以分离,并各自还可以进行线性分布式扩展,从而能够分散工作,避免将监听以及读写工作负载在同一个节点上,能够及时有效地对配置信息进行更新。
图6为本发明一实施例提供的分布式***中配置信息的更新方法的流程图。本实施例的分布式***包括配置客户端、服务器集群、配置信息的更新装置和至少一个订阅客户端,具体可以参考上述图2-图4任一所述的分布式***。如图6所示,本实施例的分布式***中配置信息的更新方法,具体可以包括如下步骤:
100、配置客户端更新服务器集群中的配置信息;
本实施例中的更新包括修改服务器集群中的配置信息,或者在服务器集群中写入新的配置信息。
101、配置信息的更新装置对服务器集群进行监听,判断服务器集群中是否发生配置信息改变事件;
本实施例的分布式***中配置信息的更新方法,用于对分布式***中的各个分布式组件如本实施例中的订阅客户端进行配置信息的更新与同步。其中配置信息的更新装置具体对服务器集群中的所有服务器进行监听,判断服务器集群中任一台服务器中是否发生配置信息改变事件。本实施例中的配置信息改变事件即指的是配置信息发送改变,具体可以为新写入配置信息或者配置信息发生修改等等改变。
102、当发生配置信息改变事件时,配置信息的更新装置从服务器集群中获取更新的配置信息;
当配置信息发送改变时,配置信息的更新装置从服务器集群中发生配置信息改变的服务器中获取更新的配置信息。
103、配置信息的更新装置向各订阅客户端发送包括更新的配置信息的消息;
本实施例中的订阅客户端即为分布式***中的分布式组件,各分布式组件进行实际业务处理时,需要及时获取到最新的配置信息。因此当当配置信息发送改变时,配置信息的更新装置获取到更新的配置信息之后,需要及时向订阅客户端发送包括更新的配置信息的消息。
104、配置信息的更新装置确认各订阅客户端是否成功收到更新的配置信息。
本实施例的配置信息的更新方法,通过采用上述方法实现配置信息的更新与上述相关装置实施例实现配置信息的更新的实现机制相同,详细可以参考上述实施例的记载,在此不再赘述。
本实施例的配置信息的更新方法,通过由配置信息的更新装置对服务器集群进行监听,判断服务器集群中是否发生配置信息改变事件;当发生配置信息改变事件时,配置信息的更新装置从服务器集群中获取更新的配置信息;配置信息的更新装置向订阅客户端发送包括更新的配置信息的消息;并确认订阅客户端是否成功收到更新的配置信息。本实施例的技术方案中,通过配置信息的更新装置来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。
可选地,在上述实施例的技术方案的基础上,其中配置信息的更新装置包括配置组件和确认组件。对应地,上述实施例中的步骤101“配置信息的更新装置对服务器集群进行监听,判断服务器集群中是否发生配置信息改变事件”,具体可以包括:配置组件对服务器集群进行监听,判断服务器集群中是否发生配置信息改变事件。
对应地,步骤102“当发生配置信息改变事件时,配置信息的更新装置从服务器集群中获取更新的配置信息”,具体可以包括:当发生配置信息改变事件时,配置组件从服务器集群中获取更新的配置信息。
进一步对应地,步骤103“配置信息的更新装置向各订阅客户端发送包括更新的配置信息的消息“,具体可以包括:配置组件向各订阅客户端发送包括更新的配置信息的消息”。
进一步对应地,步骤1034“配置信息的更新装置确认各订阅客户端是否成功收到配置组件发送的更新的配置信息,具体可以包括:配置组件确认各订阅客户端是否成功收到配置组件发送的更新的配置信息。
进一步可选地,在上述实施例的技术方案的基础上,其中步骤“配置组件向订阅客户端发送包括更新的配置信息的消息”之前,还可以包括:配置组件生成配置信息标识,配置信息标识用于唯一标识向订阅客户端发送的配置信息。
此时对应地,步骤“配置组件向订阅客户端发送包括更新的配置信息的消息”,具体可以包括配置组件向订阅客户端发送包括更新的配置信息和配置信息标识的消息。
进一步可选地,在上述实施例的技术方案的基础上,步骤“配置组件生成配置信息标识”之后,还可以包括:配置组件向确认组件发送包括配置信息标识。
进一步可选地,在上述实施例的技术方案的基础上,步骤“配置组件向订阅客户端发送包括更新的配置信息和配置信息标识的消息”之后,还可以包括如下步骤:
(1)确认组件接收订阅客户端发送的包括配置信息标识的响应消息,该订阅客户端发送的配置信息标识为订阅客户端从接收配置组件发送的消息中获取的;
(2)确认组件根据配置组件发送的配置信息标识和订阅客户端发送的配置信息标识,确认订阅客户端是否成功收到更新的配置信息。
例如确认组件具体可以判断配置组件发送的配置信息标识和订阅客户端发送的配置信息标识是否相同,若相同,确定订阅客户端成功收到配置组件发送的更新的配置信息;否则,则确定订阅客户端未成功收到配置组件发送的更新的配置信息。
进一步地,在上述实施例的技术方案的基础上,还可以包括如下两种情况:
第一、若确认组件确定订阅客户端成功收到配置组件发送的更新的配置信息时,确认组件向配置组件发送订阅客户端成功接收到配置信息的响应消息;
第二、若确认组件确定订阅客户端未成功收到配置组件发送的更新的配置信息时,向配置组件发送订阅客户端未成功接收到配置信息的响应消息;
此时对应地,配置组件在接收到确认组件发送的订阅客户端未成功接收到配置信息的响应消息后,重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息。
上述第一种情况和第二种情况时并列的两种情况。上述第二种情况提供了配置信息的重发机制,提高了配置信息更新的效率。
进一步地,在上述实施例的技术方案的基础上,上述实施例的方案还可以包括如下步骤:
(a)若配置组件在预设时间段内未接收到确认组件发送的订阅客户端成功或者未成功接收到配置信息的响应消息时,确定订阅客户端未成功接收到配置信息;
(b)配置组件重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息。
上述方案提供了配置信息的延迟并重发机制,提高了配置信息的更新效率。
上述所有可选技术方案,可以采用任意可以结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。
上述实施例的配置信息的更新方法,通过采用上述方法实现配置信息的更新与上述相关装置实施例实现配置信息的更新的实现机制相同,详细可以参考上述实施例的记载,在此不再赘述。
上述实施例的配置信息的更新方法,通过配置信息的更新装置中的确认组件来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。而且在更新配置信息的过程中提供了配置信息的重发机制,能够在确定订阅客户端未成功收到配置组件发送的更新的配置信息时,重新向订阅客户端发生更新的配置信息,而不用订阅客户端重新去订阅,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。进一步地,还在更新配置信息方案中提供了延迟方案,在预设时间段过后,若未收到响应消息,重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。
图7为本发明另一实施例提供的分布式***中配置信息的更新方法的流程图。如图7所示,本实施例的分布式***中配置信息的更新方法将上述图5及其后续可选实施例的配置信息的更新方法应用在分布式***中,具体来介绍本发明实施例的技术方案。如图6所示,本实施例的分布式***中配置信息的更新方法,具体可以包括如下步骤:
200、配置客户端更新服务器集群中的配置信息;
其中服务器集群中包括至少一台服务器;配置客户端可以更新服务器集群中每一台或者多台服务器中的配置信息。本实施例中的更新可以包括新写入或者修改等等操作。
201、配置组件对服务器集群进行监控,判断服务器集群中是否发生配置信息改变事件;当发生配置信息改变事件时,执行步骤202;否则继续监控;
本实施例中,配置组件具体可以对服务器集群中的各服务器进行监控,判断各服务器中是否发生配置信息改变事件。
202、配置组件从服务器集群中获取更新的配置信息;执行步骤203;
具体地,配置组件可以从监控到的发生配置信息改变事件的服务器中获取更新的配置信息。
203、配置组件为要发送给订阅客户端的配置信息生成配置信息标识;执行步骤204;
本实施例中,该配置信息标识用于唯一标识向该订阅客户端发送的配置信息。该配置信息标识根据实际需求可以设置为64位或者32位或者16位等等。
204、配置组件向订阅客户端发送包括更新的配置信息以及配置信息标识的消息;执行步骤205;
205、配置组件向确认组件发送配置组件标识、配置信息标识和该订阅客户端的标识;执行步骤206;
该订阅客户端的标识和配置信息标识用于对订阅客户端进行追踪,以确定订阅客户端是否成功收到配置信息,并成功更新配置信息。配置组件标识为了便于后续确认组件向对应的配置组件反馈响应消息。
其中步骤205和步骤204可以没有先后顺序限制。
206、确认组件建立配置组件标识、配置信息标识和订阅客户端的标识的映射关系;执行步骤207;
需要说明的是,当只有一个订阅客户端订阅配置信息时,配置组件可以不向确认组件发送订阅客户端的标识,因为只有一个订阅客户端不会存在不知道哪个订阅客户端后续向确认组件反馈消息。因为为了提高处理效率,当有多个订阅客户端时,可以按照步骤205和206执行。
207、订阅客户端收到配置组件发送的包括更新的配置信息以及配置信息标识的消息时,根据消息中的更新的配置信息更新自身的配置信息,并向确认组件发送包括配置信息标识以及订阅客户端标识的配置信息的反馈信息;执行208;
208、确认组件根据订阅客户端标识找到对应的配置组件标识、配置信息标识和订阅客户端的标识的映射关系,并获取映射关系中对应的配置组件发送的配置信息标识,并从订阅客户端的反馈信息中获取配置信息标识;执行步骤209;
209、确认组件判断配置组件发送的配置信息标识和订阅客户端反馈的配置信息标识是否相同,若相同时,执行步骤210;否则若不相同时,执行步骤211;
210、确认组件确定订阅客户端更新配置信息成功,执行步骤212;
211、确认组件确定订阅客户端更新配置信息不成功,执行步骤213;
212、确认组件根据映射关系中配置组件标识向对应的配置组件发送订阅客户端更新配置信息成功,结束。
213、确认组件根据映射关系中配置组件标识向对应的配置组件发送订阅客户端更新配置信息不成功,执行步骤214;
214、配置组件重新向订阅客户端发送包括更新的配置信息以及配置信息标识的消息,执行步骤207。
上述实施例中还包括:若配置组件在预设时间段内未接收到确认组件发送的订阅客户端成功或者未成功接收到配置信息的响应消息时,确定订阅客户端未成功接收到配置信息;此时配置组件重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息。由于可知,本实施例的分布式***的配置信息更新方案中还提供了延迟并重发的方案,提高了更新配置信息的效率。
本实施例的分布式***中配置信息的更新方法,通过配置信息的更新装置中的确认组件来确认订阅客户端是否成功收到更新的配置信息,从而能够及时地确定订阅客户端是否能够成功更新配置信息,克服了现有技术中的缺陷,有效地提高分布式***中配置信息更新的可靠性。而且在更新配置信息的过程中提供了配置信息的重发机制,能够在确定订阅客户端未成功收到配置组件发送的更新的配置信息时,重新向订阅客户端发生更新的配置信息,而不用订阅客户端重新去订阅,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。进一步地,还在更新配置信息方案中提供了延迟方案,在预设时间段过后,若未收到响应消息,重新向订阅客户端发送包括更新的配置信息和配置信息标识的消息,减少了订阅客户端更新配置信息的复杂性,提高了更新配置信息的效率。
需要说明的是:上述实施例提供的配置信息的更新装置在更新配置信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的配置信息的更新装置与配置信息的更新方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种分布式***,其特征在于,所述***包括配置客户端、服务器集群、配置信息的更新装置和至少一个订阅客户端;
所述服务器集群,用于存储配置信息;所述服务器集群中包括至少一台服务器;
所述配置客户端,与所述服务器集群中的各所述服务器进行通信,用于更新所述服务器集群中的所述配置信息;
所述配置信息的更新装置,用于对所述服务器集群进行监听,判断所述服务器集群中是否发生配置信息改变事件;
所述配置信息的更新装置,还用于当发生配置信息改变事件时,从所述服务器集群中获取更新的配置信息;
所述配置信息的更新装置,还用于向各所述订阅客户端发送包括所述更新的配置信息的消息;
所述配置信息的更新装置,还用于确认各所述订阅客户端是否成功收到所述更新的配置信息;
各所述订阅客户端,分别与所述配置信息的更新装置连接,用于接收所述配置信息的更新装置发送的包括所述更新的配置信息的消息。
2.根据权利要求1所述的***,其特征在于,所述配置信息的更新装置包括配置组件和确认组件;
所述配置组件,用于对所述服务器集群进行监听,判断所述服务器集群中是否发生配置信息改变事件;
所述配置组件,还用于当发生配置信息改变事件时,从所述服务器集群中获取更新的配置信息;
所述配置组件,还用于向各所述订阅客户端发送包括所述更新的配置信息的消息;
所述确认组件,用于确认各所述订阅客户端是否成功收到所述配置组件发送的所述更新的配置信息。
3.根据权利要求2所述的***,其特征在于,所述配置组件,还用于生成配置信息标识,所述配置信息标识用于唯一标识向所述订阅客户端发送的所述配置信息;
所述配置组件,具体用于向所述订阅客户端发送包括所述更新的配置信息和所述配置信息标识的消息。
4.根据权利要求3所述的***,其特征在于,所述配置组件,还用于向所述确认组件发送所述配置信息标识。
5.根据权利要求4所述的***,其特征在于,所述确认组件,还用于接收所述订阅客户端发送的包括配置信息标识的响应消息,所述订阅客户端发送的所述配置信息标识为所述订阅客户端从接收所述配置组件发送的所述消息中获取的;
所述确认组件,具体用于根据所述配置组件发送的所述配置信息标识和所述订阅客户端发送的所述配置信息标识,确认所述订阅客户端是否成功收到所述更新的配置信息。
6.根据权利要求5的***,其特征在于,所述确认组件,具体用于判断所述配置组件发送的所述配置信息标识和所述订阅客户端发送的所述配置信息标识是否相同,若相同,确定所述订阅客户端成功收到所述配置组件发送的所述更新的配置信息;否则,则确定所述订阅客户端未成功收到所述配置组件发送的所述更新的配置信息。
7.根据权利要求6所述的***,其特征在于,所述确认组件,还用于在确 定所述订阅客户端成功收到所述配置组件发送的所述更新的配置信息时,向所述配置组件发送所述订阅客户端成功接收到所述配置信息的响应消息;
或者,所述确认组件,还用于确定所述订阅客户端未成功收到所述配置组件发送的所述更新的配置信息时,向所述配置组件发送所述订阅客户端未成功接收到所述配置信息的响应消息;此时对应地,所述配置组件,还用于在接收到所述确认组件发送的所述订阅客户端未成功接收到所述配置信息的响应消息后,重新向所述订阅客户端发送包括所述更新的配置信息和所述配置信息标识的所述消息。
8.根据权利要求7所述的***,其特征在于,所述配置组件,还用于若在预设时间段内未接收到所述确认组件发送的所述订阅客户端成功或者未成功接收到所述配置信息的响应消息时,确定所述订阅客户端未成功接收到所述配置信息;
所述配置组件,还用于重新向所述订阅客户端发送包括所述更新的配置信息和所述配置信息标识的所述消息。
9.一种分布式***中配置信息的更新方法,其特征在于,所述分布式***包括配置客户端、服务器集群、配置信息的更新装置和至少一个订阅客户端;所述方法包括:
所述配置客户端更新所述服务器集群中的配置信息;
所述配置信息的更新装置对所述服务器集群进行监听,判断所述服务器集群中是否发生配置信息改变事件;
当发生配置信息改变事件时,所述配置信息的更新装置从所述服务器集群中获取更新的配置信息;
所述配置信息的更新装置向各所述订阅客户端发送包括所述更新的配置信 息的消息;
所述配置信息的更新装置确认各所述订阅客户端是否成功收到所述更新的配置信息。
10.根据权利要求9所述的方法,其特征在于,所述配置信息的更新装置包括配置组件和确认组件;
所述配置信息的更新装置对所述服务器集群进行监听,判断所述服务器集群中是否发生配置信息改变事件,具体包括:所述配置组件对所述服务器集群进行监听,判断所述服务器集群中是否发生配置信息改变事件;
当发生配置信息改变事件时,所述配置信息的更新装置从所述服务器集群中获取更新的配置信息,具体包括:当发生配置信息改变事件时,所述配置组件从所述服务器集群中获取更新的配置信息;
所述配置信息的更新装置向各所述订阅客户端发送包括所述更新的配置信息的消息,具体包括:所述配置组件向各所述订阅客户端发送包括所述更新的配置信息的消息;
所述配置信息的更新装置确认各所述订阅客户端是否成功收到所述配置组件发送的所述更新的配置信息,具体包括:所述配置组件确认各所述订阅客户端是否成功收到所述配置组件发送的所述更新的配置信息。
11.根据权利要求10所述的方法,其特征在于,所述配置组件向订阅客户端发送包括所述更新的配置信息的消息之前,所述方法还包括:
所述配置组件生成配置信息标识,所述配置信息标识用于唯一标识向所述订阅客户端发送的所述配置信息;
所述配置组件向订阅客户端发送包括所述更新的配置信息的消息,包括:所述配置组件向所述订阅客户端发送包括所述更新的配置信息和所述配置信息标识的消息。
12.根据权利要求11所述的方法,其特征在于,所述配置组件生成配置信息标识之后,所述方法还包括:
所述配置组件向所述确认组件发送所述配置信息标识。
13.根据权利要求12所述的方法,其特征在于,所述配置组件向所述订阅客户端发送包括所述更新的配置信息和所述配置信息标识的消息之后,所述方法还包括:
所述确认组件接收所述订阅客户端发送的包括配置信息标识的响应消息,所述订阅客户端发送的所述配置信息标识为所述订阅客户端从接收所述配置组件发送的所述消息中获取的;
所述确认组件根据所述配置组件发送的所述配置信息标识和所述订阅客户端发送的所述配置信息标识,确认所述订阅客户端是否成功收到所述更新的配置信息。
14.根据权利要求13所述的方法,其特征在于,所述确认组件根据所述配置组件发送的所述配置信息标识和所述订阅客户端发送的所述配置信息标识,确认所述订阅客户端是否成功收到所述更新的配置信息,具体包括:
所述确认组件判断所述配置组件发送的所述配置信息标识和所述订阅客户端发送的所述配置信息标识是否相同,若相同,确定所述订阅客户端成功收到所述配置组件发送的所述更新的配置信息;否则,则确定所述订阅客户端未成功收到所述配置组件发送的所述更新的配置信息。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
若所述确认组件确定所述订阅客户端成功收到所述配置组件发送的所述更新的配置信息时,向所述配置组件发送所述订阅客户端成功接收到所述配置信 息的响应消息;
或者,若所述确认组件确定所述订阅客户端未成功收到所述配置组件发送的所述更新的配置信息时,向所述配置组件发送所述订阅客户端未成功接收到所述配置信息的响应消息;
此时对应地,所述配置组件在接收到所述确认组件发送的所述订阅客户端未成功接收到所述配置信息的响应消息后,重新向所述订阅客户端发送包括所述更新的配置信息和所述配置信息标识的所述消息。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
若所述配置组件在预设时间段内未接收到所述确认组件发送的所述订阅客户端成功或者未成功接收到所述配置信息的响应消息时,确定所述订阅客户端未成功接收到所述配置信息;
所述配置组件重新向所述订阅客户端发送包括所述更新的配置信息和所述配置信息标识的所述消息。
CN201310687405.2A 2013-12-12 2013-12-12 分布式***及分布式***中配置信息的更新方法 Active CN104092718B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310687405.2A CN104092718B (zh) 2013-12-12 2013-12-12 分布式***及分布式***中配置信息的更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310687405.2A CN104092718B (zh) 2013-12-12 2013-12-12 分布式***及分布式***中配置信息的更新方法

Publications (2)

Publication Number Publication Date
CN104092718A CN104092718A (zh) 2014-10-08
CN104092718B true CN104092718B (zh) 2017-10-24

Family

ID=51640398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310687405.2A Active CN104092718B (zh) 2013-12-12 2013-12-12 分布式***及分布式***中配置信息的更新方法

Country Status (1)

Country Link
CN (1) CN104092718B (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111934904B (zh) * 2014-12-10 2023-11-03 华为技术有限公司 一种扩容方法、控制器及***
CN105791000A (zh) * 2014-12-26 2016-07-20 阿尔卡特朗讯 一种用于配置应用的方法与设备
CN104954482A (zh) * 2015-06-29 2015-09-30 上海瀚之友信息技术服务有限公司 管理配置的***及方法
CN106411684B (zh) * 2015-07-30 2020-06-16 中兴通讯股份有限公司 消息处理方法及装置
CN105204949B (zh) * 2015-08-27 2021-06-08 威盛电子股份有限公司 在手机安全数码卡加密过程中主动触发***广播的方法与装置
CN105323151B (zh) * 2015-11-16 2018-09-14 东软集团股份有限公司 一种消息处理可靠性追踪方法及装置
CN105871584A (zh) * 2015-12-02 2016-08-17 乐视体育文化产业发展(北京)有限公司 一种键值对数据库中的客户端配置更新方法、设备及***
CN105867837A (zh) * 2015-12-02 2016-08-17 乐视体育文化产业发展(北京)有限公司 一种分布式高速缓存***中的客户端配置更新方法、设备及***
CN105515872B (zh) * 2015-12-23 2019-05-28 北京奇虎科技有限公司 配置信息的更新方法、装置及***
CN105630994A (zh) * 2015-12-25 2016-06-01 浪潮电子信息产业股份有限公司 一种基于storm的数据处理方法、装置及***
CN107357555B (zh) * 2016-05-09 2020-11-17 阿里巴巴集团控股有限公司 配置推送方法及装置、***
JP6698177B2 (ja) * 2016-05-17 2020-05-27 アビニシオ テクノロジー エルエルシー 再構成可能な分散処理
CN107451147B (zh) * 2016-05-31 2020-07-31 北京京东尚科信息技术有限公司 一种kafka集群动态切换的方法和装置
CN106060138A (zh) * 2016-06-06 2016-10-26 北京小米移动软件有限公司 更新数据的方法及装置
CN106453512A (zh) * 2016-09-05 2017-02-22 努比亚技术有限公司 一种Redis集群信息监控装置及方法
CN106412029A (zh) * 2016-09-13 2017-02-15 乐视控股(北京)有限公司 一种配置信息接收和发送方法及装置
CN106572173B (zh) * 2016-11-07 2020-06-09 阿里巴巴(中国)有限公司 一种配置信息更新方法、装置和***
CN106502915A (zh) * 2016-12-05 2017-03-15 广州唯品会信息科技有限公司 软件测试方法及***
CN106656219A (zh) * 2016-12-16 2017-05-10 四川九洲电器集团有限责任公司 一种参数注入方法及设备
CN108984544B (zh) * 2017-05-31 2021-04-30 北京京东尚科信息技术有限公司 一种分布式***修改配置信息的方法和装置
CN107391276B (zh) * 2017-07-05 2018-09-28 腾讯科技(深圳)有限公司 分布式监听方法、监听控制装置及***
CN107947960B (zh) * 2017-10-13 2021-01-15 用友网络科技股份有限公司 配置信息的推送方法及***、配置信息的接收方法及***
CN107769970A (zh) * 2017-10-20 2018-03-06 北京集奥聚合科技有限公司 一种分布式***中配置信息的处理方法及***
CN107733715A (zh) * 2017-10-26 2018-02-23 苏州蜗牛数字科技股份有限公司 一种分布式***中配置信息的管理***及方法
CN108170763B (zh) * 2017-12-25 2021-07-27 江南大学 一种低延迟的分布式计算共识算法
CN110580767A (zh) * 2018-06-11 2019-12-17 山东新北洋信息技术股份有限公司 一种自动售货机的配置管理方法及装置
CN109087107B (zh) * 2018-07-04 2020-11-17 恒生电子股份有限公司 基于分布式内存数据库的实时监控方法、***及电子设备
CN109086390B (zh) * 2018-07-27 2022-03-25 北京中关村科金技术有限公司 一种实现数据一致性实时监控方法
CN109240608B (zh) * 2018-08-22 2021-08-31 郑州云海信息技术有限公司 一种配置信息同步方法及装置
CN109150662B (zh) * 2018-08-30 2020-08-21 百度在线网络技术(北京)有限公司 消息传输方法、分布式***、设备、介质和无人车
CN109582381A (zh) * 2018-10-12 2019-04-05 中国建设银行股份有限公司 文件型配置信息同步***、方法及存储介质
CN110166528B (zh) * 2019-04-16 2022-03-18 平安科技(深圳)有限公司 防止节点变更通知丢失的方法、装置和计算机设备
CN110493326B (zh) * 2019-08-02 2021-11-12 泰华智慧产业集团股份有限公司 基于zookeeper管理集群配置文件的***和方法
CN110635953A (zh) * 2019-10-17 2019-12-31 厦门网宿有限公司 一种配置信息管理方法及装置
CN110798349B (zh) * 2019-10-28 2023-02-28 国家计算机网络与信息安全管理中心 一种配置分发、接收方法、设备及计算机可读存储介质
CN111193789B (zh) * 2019-12-25 2023-07-11 微民保险代理有限公司 订阅信息推送方法、装置、计算机设备和可读存储介质
CN111163159B (zh) * 2019-12-27 2023-07-14 中国平安人寿保险股份有限公司 消息订阅方法、装置、服务器及计算机可读存储介质
CN111224826B (zh) * 2020-01-07 2023-04-28 深圳市网心科技有限公司 基于分布式***的配置更新方法、设备、***及介质
US20230030476A1 (en) * 2020-01-22 2023-02-02 Fanuc Corporation Control device for industrial machine
CN111371898B (zh) * 2020-03-13 2022-07-08 北京锐安科技有限公司 一种消息监听方法、装置、设备及存储介质
CN111857800A (zh) * 2020-07-01 2020-10-30 北京达佳互联信息技术有限公司 组件动态配置方法、装置、电子设备及存储介质
CN111884844A (zh) * 2020-07-20 2020-11-03 中国建设银行股份有限公司 基于zookeeper的消息服务接入方法和设备
CN113805910B (zh) * 2020-11-26 2024-05-17 北京沃东天骏信息技术有限公司 一种应用中的数据共享的方法及***
CN112532450B (zh) * 2020-11-30 2022-08-23 中科美络科技股份有限公司 一种数据流分发进程配置的动态更新方法及***
CN112822036A (zh) * 2020-12-28 2021-05-18 苏宁消费金融有限公司 一种分布式***的配置数据同步方法
CN116126552A (zh) * 2022-12-26 2023-05-16 国家气象信息中心(中国气象局气象数据中心) 基于Storm的海量气象观测数据处理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499995A (zh) * 2008-01-29 2009-08-05 华为技术有限公司 一种业务调度的方法及用于业务调度的***、装置
CN201886473U (zh) * 2010-02-08 2011-06-29 阿里巴巴集团控股有限公司 配置文件更新***、配置服务器及应用服务器
CN102394901A (zh) * 2011-06-23 2012-03-28 北京新媒传信科技有限公司 一种服务器集群***及其中的监控策略更新方法
CN102916974A (zh) * 2012-11-07 2013-02-06 曙光信息产业股份有限公司 集群配置更新方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617292B2 (en) * 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499995A (zh) * 2008-01-29 2009-08-05 华为技术有限公司 一种业务调度的方法及用于业务调度的***、装置
CN201886473U (zh) * 2010-02-08 2011-06-29 阿里巴巴集团控股有限公司 配置文件更新***、配置服务器及应用服务器
CN102394901A (zh) * 2011-06-23 2012-03-28 北京新媒传信科技有限公司 一种服务器集群***及其中的监控策略更新方法
CN102916974A (zh) * 2012-11-07 2013-02-06 曙光信息产业股份有限公司 集群配置更新方法

Also Published As

Publication number Publication date
CN104092718A (zh) 2014-10-08

Similar Documents

Publication Publication Date Title
CN104092718B (zh) 分布式***及分布式***中配置信息的更新方法
CN106502769B (zh) 分布式事务处理方法、装置及***
CN111489256B (zh) 用于多链区块链***中的跨链处理方法、设备及***
CN105607954A (zh) 一种有状态容器在线迁移的方法和装置
CN105095022A (zh) 一种数据备份方法及装置
CN102739775A (zh) 物联网数据采集服务器集群的监控和管理方法
CN102255974A (zh) 一种云计算服务器的云存储方法
CN103488546A (zh) 一种支持多级别数据和数据库在线并发备份与恢复方法
CN107517227B (zh) 用于分布式一致性***的会话实现方法以及装置
EP2356753A1 (en) Link data transmission method, node and system
CN110445697B (zh) 视频大数据云平台设备接入服务方法
CN110704250B (zh) 一种分布式***的热备份装置
CN102438042B (zh) 一种多点接入设备的动态参数同步方法及***
CN110011840A (zh) 控制器的状态处理方法、装置和控制器
CN110677282A (zh) 一种分布式***的热备份方法及分布式***
CN104618466A (zh) 基于消息传递的负载均衡和过负荷控制***及其控制方法
CN116599972A (zh) 一种面向高机动环境的边缘云聚云散方法
CN109947844B (zh) 一种基于医疗区块链的医疗数据管理***
JP2003337717A (ja) オンライントランザクション処理の障害時復旧同期システム
CN114090342A (zh) 存储容灾的链路管理方法及消息执行节点、存储控制集群
CN113849127A (zh) 基于san存储双活网络的仲裁方法、装置及电子设备
WO2019019607A1 (zh) 数据备份方法、装置及***
CN111190754B (zh) 一种区块链事件通知方法及区块链***
WO2015101026A1 (zh) 分布式流处理***的容错方法、节点及***
CN103368969A (zh) 传输管理eml-nml间全量配置同步的方法及***

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