一种信息同步方法及装置制造方法及图纸

技术编号:15746451 阅读:231 留言:0更新日期:2017-07-03 01:47
本发明专利技术公开了一种信息同步方法及装置,用于解决现有技术中的信息同步方式给zookeeper带来较大的负载,严重影响zookeeper的处理性能的问题。该方法包括:服务器上提供服务的各进程中,预定数量的进程分别与zookeeper建立长连接,所述预定数量少于所述服务器上提供服务的进程总数量;所述预定数量的进程通过所述长连接,监控所述zookeeper中是否存在待同步信息;每当监控到所述zookeeper中存在待同步信息时,通过所述长连接获取所述待同步信息,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程。

Information synchronization method and device

The invention discloses an information synchronization method and a device, which is used for solving the problem that the information synchronization mode in the prior art brings great load to the zookeeper, and seriously influences the processing performance of the zookeeper. The method includes: the process on the server to provide services in a predetermined number of processes and zookeeper to build a long connection, the total number of predetermined number less than the server service process; the predetermined number of processes connected by the long, whether to exist the synchronization information monitoring zookeeper every time; the monitoring to the zookeeper in the presence of information to be synchronized, the synchronization of long connection to get information through the acquisition, will be synchronized information through inter process communication synchronization to the server provides services to the process of him.

【技术实现步骤摘要】
一种信息同步方法及装置
本专利技术涉及信息
,尤其涉及一种信息同步方法及装置。
技术介绍
随着互联网上的应用使用普及,应用的用户数量也大大增加,单台服务器远不足为大规模的用户提供服务,因此,对于互联网上的任一应用,通常可以采用分布式系统,利用多个服务器一起提供服务。每个服务器上都可以有多个提供服务的进程,各个服务器的进程在运行过程中都需要获取一些特定信息,特定信息可以是包括可执行指令信息、配置信息、任务调度信息、服务资源信息等,特定信息可以是固定不变的,也可以是动态变化的。在现有技术中,通常利用zookeeper对特定信息进行统一管理,zookeeper是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。每个服务器中每个进程分别与zookeeper建立一个长连接,则可以通过各长连接,将zookeeper上的动态变化的特定信息(称为待同步信息)同步给各个服务器的各个进程。但是,由于在实际应用中通常是上百个服务器共同服务,每个服务器通常运行上百个提供服务的进程,比如:若有100个服务器一起提供服务,每个服务器上运行128个进程时,每个服务器中的每个进程都与zookeeper建立一个长连接,共需要建立12800个长连接,以用于同步待同步信息。由此可见,这种信息同步的方式给zookeeper带来较大的负载,严重影响zookeeper的处理性能。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的信息同步方法及装置。根据本专利技术的一个方面,提出一种信息同步方法,服务器与zookeeper相互连接,所述服务器上有多个提供服务的进程,所述方法包括:各所述进程中,预定数量的进程分别与zookeeper建立长连接,所述预定数量少于所述服务器上提供服务的进程总数量;所述预定数量的进程通过所述长连接,监控所述zookeeper中是否存在待同步信息;每当监控到所述zookeeper中存在待同步信息时,通过所述长连接获取所述待同步信息,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程。可选地,所述进程间通信的方式包括管道、消息队列中的至少一种。可选地,当所述进程间通信的方式包括管道时,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程,具体包括:所述预定数量的进程中的至少一个进程创建与所述服务器上提供服务的其他进程之间的管道;所述至少一个进程通过创建的管道,将获取的待同步信息同步给所述其他进程。可选地,当所述进程间通信的方式包括消息队列时,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程,具体包括:所述预定数量的进程中的至少一个进程将获取的待同步信息写入预定的消息队列中,以使所述服务器上提供服务的其他进程从所述消息队列中读取所述待同步信息并同步。可选地,通过所述长连接获取所述待同步信息后,所述方法还包括:所述预定数量的进程将获取的待同步信息保存至所述服务器的本地磁盘中,以使当所述预定数量的进程通过进程间通信的方式向所述其他进程同步失败时,所述其他进程从所述本地磁盘中同步所述待同步信息。根据本专利技术的另一个方面,提出一种信息同步装置,服务器与zookeeper相互连接,所述服务器上有多个提供服务的进程,所述装置位于所述服务器上,所述装置包括:连接模块,用于使各所述进程中,预定数量的进程分别与zookeeper建立长连接,所述预定数量少于所述服务器上提供服务的进程总数量;监控模块,用于使所述预定数量的进程通过所述长连接,监控所述zookeeper中是否存在待同步信息;同步模块,用于使所述预定数量的进程每当监控到所述zookeeper中存在待同步信息时,通过所述长连接获取所述待同步信息,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程。可选地,所述进程间通信的方式包括管道、消息队列中的至少一种。可选地,当所述进程间通信的方式包括管道时,所述同步模块具体用于:使所述预定数量的进程中的至少一个进程创建与所述服务器上提供服务的其他进程之间的管道,并通过创建的管道,将获取的待同步信息同步给所述其他进程。可选地,当所述进程间通信的方式包括消息队列时,所述同步模块具体用于:使所述预定数量的进程中的至少一个进程将获取的待同步信息写入预定的消息队列中,以使所述服务器上提供服务的其他进程从所述消息队列中读取所述待同步信息并同步。可选地,所述装置还包括:保存模块,用于使所述预定数量的进程通过所述长连接获取所述待同步信息后,将获取的待同步信息保存至所述服务器的本地磁盘中,以使当所述预定数量的进程通过进程间通信的方式向所述其他进程同步失败时,所述其他进程从所述本地磁盘中同步所述待同步信息。根据本专利技术的方案,服务器上提供服务的各进程中,预定数量的进程分别与zookeeper建立长连接,所述预定数量少于所述服务器上提供服务的进程总数量;所述预定数量的进程通过所述长连接,监控所述zookeeper中是否存在待同步信息;每当监控到所述zookeeper中存在待同步信息时,通过所述长连接获取所述待同步信息,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程。无需服务器上的所有提供服务的各进程分别与zookeeper建立长连接,而是可以由一部分进程分别与zookeeper建立长连接即可,并由建立长连接的这部分进程在从zookeeper同步待同步信息后,再帮助其他进程同步待同步信息。因此,可以有效地减轻zookeeper的负载,以及减少对zookeeper的处理性能的影响。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为依据本专利技术一个实施例的信息同步方法的过程;图2为基于一种实际应用场景,现有技术中各进程与zookeeper同步信息时建立的长连接示意图;图3为基于一种实际应用场景,本专利技术的方案中基于管道方式,各进程与zookeeper同步信息时建立的长连接示意图;图4为基于一种实际应用场景,本专利技术的方案中基于消息队列方式,各进程与zookeeper同步信息时建立的长连接示意图;图5为依据本专利技术一个实施例的信息同步装置结构示意图。具体实施方式下面将参照附图更详细地描述本专利技术公开的示例性实施例。虽然附图中显示了本专利技术公开的示例性实施例,然而应当理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本专利技术,并且能够将本专利技术公开的范围完整的传达给本领域的技术人员。以下结合附图,详细说明本专利技术各实施例提供的技术方案。图1为依据本专利技术实施例的信息同步方法的过程,该过程的执行主体可以是服务器,更具体地,该过程中的步骤可以是服务器上的进程执行的。所述服务器可以是Web服务器、应用服务器等,所述进程具体可以是提供服务的进程,以Web服务器为例,其提供服务的进程可以是快速页模式(fastpagemode,fpm)进程等。本专利技术对服务器的本文档来自技高网...
一种信息同步方法及装置

【技术保护点】
一种信息同步方法,其特征在于,服务器与zookeeper相互连接,所述服务器上有多个提供服务的进程,所述方法包括:各所述进程中,预定数量的进程分别与zookeeper建立长连接,所述预定数量少于所述服务器上提供服务的进程总数量;所述预定数量的进程通过所述长连接,监控所述zookeeper中是否存在待同步信息;每当监控到所述zookeeper中存在待同步信息时,通过所述长连接获取所述待同步信息,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程。

【技术特征摘要】
1.一种信息同步方法,其特征在于,服务器与zookeeper相互连接,所述服务器上有多个提供服务的进程,所述方法包括:各所述进程中,预定数量的进程分别与zookeeper建立长连接,所述预定数量少于所述服务器上提供服务的进程总数量;所述预定数量的进程通过所述长连接,监控所述zookeeper中是否存在待同步信息;每当监控到所述zookeeper中存在待同步信息时,通过所述长连接获取所述待同步信息,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程。2.根据权利要求1所述的方法,其特征在于,所述进程间通信的方式包括管道、消息队列中的至少一种。3.根据权利要求2所述的方法,其特征在于,当所述进程间通信的方式包括管道时,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程,具体包括:所述预定数量的进程中的至少一个进程创建与所述服务器上提供服务的其他进程之间的管道;所述至少一个进程通过创建的管道,将获取的待同步信息同步给所述其他进程。4.根据权利要求2所述的方法,其特征在于,当所述进程间通信的方式包括消息队列时,将获取的待同步信息通过进程间通信的方式同步给所述服务器上提供服务的其他进程,具体包括:所述预定数量的进程中的至少一个进程将获取的待同步信息写入预定的消息队列中,以使所述服务器上提供服务的其他进程从所述消息队列中读取所述待同步信息并同步。5.根据权利要求1~4任一项所述的方法,其特征在于,通过所述长连接获取所述待同步信息后,所述方法还包括:所述预定数量的进程将获取的待同步信息保存至所述服务器的本地磁盘中,以使当所述预定数量的进程通过进程间通信的方式向所述其他进程同步失败时,所述其他进程从所述本地磁盘中同...

【专利技术属性】
技术研发人员:冯所范王超朱超
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1