CN103500111A - 一种基于zookeeper的信息配置方法及装置 - Google Patents

一种基于zookeeper的信息配置方法及装置 Download PDF

Info

Publication number
CN103500111A
CN103500111A CN201310472913.9A CN201310472913A CN103500111A CN 103500111 A CN103500111 A CN 103500111A CN 201310472913 A CN201310472913 A CN 201310472913A CN 103500111 A CN103500111 A CN 103500111A
Authority
CN
China
Prior art keywords
configuration information
local disk
monitoring
zookeeper
zookeeper server
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.)
Granted
Application number
CN201310472913.9A
Other languages
English (en)
Other versions
CN103500111B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610755159.3A priority Critical patent/CN106371932B/zh
Priority to CN201310472913.9A priority patent/CN103500111B/zh
Publication of CN103500111A publication Critical patent/CN103500111A/zh
Priority to PCT/CN2014/086653 priority patent/WO2015051690A1/zh
Application granted granted Critical
Publication of CN103500111B publication Critical patent/CN103500111B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Abstract

本发明提供一种基于zookeeper的信息配置方法及装置,所述方法通过启动一个进程占有进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有的配置信息,以使待读取配置信息的进程只需从本地磁盘中查找自身对应的配置信息,若没有查找到,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘。可见本发明能够降低zookeeper服务器的负载。

Description

一种基于zookeeper的信息配置方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种基于zookeeper的信息配置方法及装置。
背景技术
随着计算机技术的不断发展,在网络应用中通常采用分布式系统,利用多台服务器一起提供服务,每个服务器都有上百个进程,这些服务器的进程配置通常都是一样的,当某一个进程配置需要修改时,必须对所有的服务器中该进程配置都进行修改。
目前常利用zookeeper对多台服务器中的所有进程配置信息进行集中管理。zookeeper顾名思义动物园管理员,在计算机技术领域中zookeeper是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。现有的基于zookeeper的信息配置方案是:每个服务器中每个进程都要建立与zookeeper服务器之间的长连接,每个进程通过调用zookeeper服务器的接口监控自身进程的配置信息,当某一个进程的配置信息需要修改时,操作人员只需要修改zookeeper服务器上相应的配置信息,一旦发现zookeeper服务器的配置信息发生变动,对应的服务器进程及时更新自身进程的配置信息。
由于在实际应用中常常是上百台服务器共同服务,每个服务器通常至少运行上百个进程,比如:若有100个服务器一起提供服务,每个服务器上运行200个进程时,每个服务器中的每个进程都与zookeeper服务器建立一个长连接,共需要建立20000个连接,可见这种配置方式给zookeeper服务器带来较大的负载,严重影响zookeeper服务器的处理性能。
发明内容
本发明的一种基于zookeeper的信息配置方法及装置,用以保证服务器中所有进程配置信息得到监控的同时有效地降低zookeeper服务器的负载。
为此,本发明提供如下技术方案:
第一方面,本发明提供了一种基于zookeeper的信息配置方法,其包括:
启动一个进程占有进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有配置信息,以使所述zookeeper服务器在配置信息发生变动时,向所述进程发送更新配置信息通知;
所述进程根据接收到的更新配置信息通知,从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘中,以使待读取配置信息的进程从本地磁盘中查找自身对应的配置信息,若查找到对应的配置信息,所述待读取配置信息的进程从本地磁盘中读取自身对应的配置信息;若没有查找到对应的配置信息,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,并从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘。
在第一方面的第一种可能的实现方式中,在更新到本地磁盘中之后,还包括:
更新到共享内存中,以使所述待读取配置信息的进程从所述共享内存中查找自身对应的配置信息;
则所述从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘是:
从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘和共享内存中。
结合第一方面以及第一方面的第一种可能的实现方式,在二种可能的实现方式中,所述建立一个进程与zookeeper服务器之间的长连接,并通过所述进程监控本地磁盘中所有的配置信息,包括:
启动一个专用于监控进程配置信息的进程占有进程间的锁;
建立所述专用于监控进程配置信息的进程与zookeeper服务器之间的长连接,通过所述专用监控配置信息的进程监控本地磁盘中所有的配置信息。
结合第一方面以及第一方面的第一种可能的实现方式,在三种可能的实现方式中,所述建立一个进程与zookeeper服务器之间的长连接,并通过所述进程监控本地磁盘中所有的配置信息,包括:
启动待读取配置信息的进程占有进程间的锁;
在所述待读取配置信息的进程中启动一个线程或者一个进程,建立所述线程或者所述进程与zookeeper服务器之间的长连接,通过所述线程或者所述进程监控本地磁盘中所有的配置信息。
结合第一方面以及第一方面的第一种可能的实现方式中第三种可能的实现方式,在第四种可能实现的方式中,在所述待读取配置信息的进程中启动的一个线程为异步线程。
第二方面,本发明提供了一种基于zookeeper的信息配置装置,所述装置包括:
监控单元,用于启动一个进程占有进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,并通过所述进程监控本地磁盘中所有的配置信息,以使所述zookeeper服务器在配置信息发生变动时,向所述进程发送更新配置信息通知;
更新单元,用于通过所述进程根据所述更新配置信息通知从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘中,以使待读取配置信息的进程从本地磁盘中查找自身对应的配置信息,若查找到对应的配置信息,所述待读取配置信息的进程从本地磁盘中读取自身对应的配置信息;若没有查找到对应的配置信息,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,并从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘。
在第二方面中第一种可能的实现方式中,所述装置还包括:
储存单元,用于将配置信息更新或者储存至本地磁盘时,并更新或者储存至共享内存,以使所述待读取配置信息的进程从所述共享内存中查找自身对应的配置信息。
结合第二方面以及第二方面中第一种可能的实现方式,在第二种可能实现的方式中,所述监控单元,包括:
第一占有子单元,用于启动一个专用于监控进程配置信息的进程占有进程间的锁;
第一监控子单元,用于建立所述专用于监控进程配置信息的进程与zookeeper服务器之间的长连接,通过所述专用监控配置信息的进程监控本地磁盘中所有的配置信息。
结合第二方面以及第二方面中第一种可能的实现方式,在第三种可能实现的方式中,所述监控单元,包括:
第二占有子单元,用于启动待读取配置信息的进程占有进程间的锁;
第二监控子单元,用于在所述待读取配置信息的进程中启动一个线程或者一个进程,建立所述线程或者所述进程与zookeeper服务器之间的长连接,通过所述线程或者所述进程监控本地磁盘中所有的配置信息。
结合第二方面以及第二方面中第一种可能的实现方式中第二种可能实现的方式,在第三种可能的实现方式中,所述第二监控子单元,用于在所述待读取配置信息的进程中启动一个异步线程,建立所述异步进程与zookeeper服务器之间的一个长连接,通过所述异步线程监控所述进程间通信中所有进程的配置信息。
由上述实施例可以看出,与现有技术相比,本发明的有益效果在于:
通过启动一个进程占用进程间的锁,使得该进程对共享数据的修改的时间段内其他进程无法对该共享数据进行任何操作,且该进程对共享数据的操作其他进程都能够立刻知道,建立该进程与zookeeper服务器之间的长连接,通过该进程监控本地磁盘中所有的配置信息。
根据接收到zookeeper服务器发出的更新配置信息的通知,所述进程从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘中,任意一个进程运行需要获取配置信息时,只需要去本地磁盘查找自身对应的配置信息,而无需再与zookeeper服务器之间建立长连接;若本地磁盘中没有对应的配置信息,说明该进程的相关配置信息还没有被监控,这种情况下只需与zookeeper服务器之间的建立一个短连接,从所述zookeeper服务器中获取自身配置信息并储存在本地磁盘,以使该进程的配置信息也得到监控,由于已经与zookeeper服务器之间建立了长连接的用于监控本地磁盘中所有配置信息的进程会实时或者定期扫描本地磁盘,当扫描到本地磁盘中存在该进程的配置信息,将对该进程的配置信息也进行监控,以保证实时更新该进程的配置信息。由此可见:利用本发明的方法每个服务器不需要建立每个进程与zookeeper服务器之间的长连接,而是通过利用一个进程占有进程间的锁和本地磁盘的共享,只建立一个进程与zookeeper服务器之间的长连接和最初时的短连接的方式即可保证所有进程的配置信息都得到监控,同时降低zookeeper服务器的负载。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例一种基于zookeeper的信息配置方法实施例1的流程图;
图2是本发明实施例一种基于zookeeper的信息配置方法实施例2的流程图;
图3是本发明实施例一种基于zookeeper的信息配置框架图;
图4是现有技术的基于zookeeper的信息配置框架图;
图5是本发明实施例一种基于zookeeper的信息配置装置实施例1的示意图;
图6是本发明实施例一种基于zookeeper的信息配置装置实施例2的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
参见图1,示出了图1是本发明实施例一种基于zookeeper的信息配置方法实施例1的流程图,所述方法包括:
步骤101,启动一个进程占有进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有配置信息,以使所述zookeeper服务器在配置信息发生变动时,向所述进程发送更新配置信息通知。
进程是操作系统结构的基础,是一个正在执行的程序,服务器中任意一个进程启动运行时,都需要先读取配置信息,然后按照配置进行程序流程处理。
本发明实施例中启动一个进程占有进程间的锁是为了实现服务器中多个进程之间共享资源,一个进程对共享数据的修改的时候,其他进程无法在同一时间对共享数据进行操作,任何一个进程对共享数据进行操作,其他进程能够立刻看到。为了实现这个目的,需要服务器系统内核提供锁,这种锁的具体实现方式是:文件锁(记录锁)、System V信号量锁(信号灯)、互斥锁、条件变量、读写锁等。文件锁、信号量锁一般用于进程间的同步,互斥锁、条件变量、读写锁一般用于线程间的同步,具体根据实际的情况决定,在此并不做具体限定。
本步骤中启动一个进程占用进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有的配置信息,具体有两种实现方式,下面分别对这两种实现方式进行解释说明。
第一种实现方式,可以包括:
启动一个专用于监控进程配置信息的进程占有进程间的锁;
建立所述专用于监控进程配置信息的进程与zookeeper服务器之间的长连接,通过所述专用于监控进程配置信息的进程监控本地磁盘中所有的配置信息。
服务器启动一个专用于监控进程配置信息的进程,该进程只用于监控服务器中所有进程的配置信息。该进程占有进程间的锁就实现所有进程间的同步,锁的实际功能是当专用于监控进程配置信息的进程对本地磁盘中数据进行写入操作时,其他进程不能对该本地磁盘的数据进行任何操作,同样,当其他进程从本地磁盘中读取数据时,专用于监控进程配置信息的进程也不能对本地磁盘进行任何操作,因此通过占有进程间的锁来保证所有进程对本地磁盘操作的互不干扰。
第二种实现方式,可以包括:
启动所述待读取配置信息的进程占有进程间的锁;
在所述待读取配置信息的进程中启动一个线程或者一个进程,建立所述线程或者所述进程与zookeeper服务器之间的长连接,通过所述线程或者所述进程监控本地磁盘中所有的配置信息。
当服务器中一个进程需要读取配置信息时,利用这个待读取配置信息的进程占有进程间的锁,这个锁的具体作用和上面的功能一样,在此不再赘述。
所述待读取配置信息的进程可以启动一个线程与zookeeper服务器之间的长连接,并通过该线程监控本地磁盘中所有的配置信息;也可以是,所述待读取配置信息的进程启动一个进程与zookeeper服务器之间的长连接,并通过该进程监控本地磁盘中所有的配置信息。
为了不影响进程的主流程执行速率,不浪费系统资源,本发明实施例还提供了一种任选方案。
作为本发明实施例一种任选方案,所述待读取配置信息的进程启动的一个线程可以为异步线程。
由于进程与zookeeper服务器之间保持着长连接,当操作人员需要修改配置时,只需要修改zookeeper服务器上的对应的配置信息即可,当zookeeper服务器中监控的配置信息发生变动时,就会立刻向所述进程发出更新配置信息通知。
步骤102,所述进程根据接收到的更新配置信息通知,从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘中,以使待读取配置信息的进程从本地磁盘中查找自身对应的配置信息,若查找到对应的配置信息,所述待读取配置信息的进程从本地磁盘中读取自身对应的配置信息;若没有查找到对应的配置信息,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,并从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘。
根据所述更新配置信息通知从zookeeper服务器中获取配置信息并更新到本地磁盘中,保证本地磁盘中储存的是最新的配置信息,以使任意一个进程从所述本地磁盘读取对应的配置信息都是最新的配置信息,确保配置信息的实时更新,以保证服务器中各个进程正确执行。
当服务器中有进程需要运行,必须先读取自身配置信息,只需要从本地磁盘中查找自身对应的配置信息。
当没有查找到对应的配置信息时,说明当前待读取配置信息的进程的配置信息还没有被监控,因此,需要当前待读取配置信息的进程建立与zookeeper服务器之间的短连接,从所述zookeeper服务器中获取自身对应的配置信息,并储存在本地磁盘中。
所谓短连接是与长连接相对的两种连接方式,短连接的操作步骤是:建立连接---数据传输---关闭连接。短连接的方式是在建立连接传输数据后立刻断开连接。长连接的操作步骤是:建立连接---数据传输---(一直保持连接)---数据传输----关闭连接。长连接的方式在建立连接传输数据后并不断开,这种通信连接关系一直存在。相比之下短连接方式能够节约服务器系统资源。
与zookeeper服务器建立长连接的进程会扫描本地磁盘,当发现本地磁盘中有新的进程的配置信息时(也就是本地磁盘中存在还未被监控的配置信息时),将该配置信息加入监控内容中,保证本地磁盘中所有进程的配置信息都能够及时得到监控,以实现实时更新所有进程的配置信息。
由上述实施例可以看出,与现有技术相比,本发明的有益效果在于:
通过启动一个进程占用进程间的锁,使得该进程对共享数据的修改的时间段内其他进程无法对该共享数据进行任何操作,且该进程对共享数据的操作其他进程都能够立刻知道,建立该进程与zookeeper服务器之间的长连接,该进程扫描本地磁盘,以监控本地磁盘中所有的配置信息。
根据接收到的通知从所述zookeeper服务器中获取对应的配置信息,并更新到本地磁盘中,任意一个进程运行需要获取配置信息时,只需要去本地磁盘获取对应的配置信息,而无需再与zookeeper服务器之间建立长连接;若本地磁盘中没有对应的配置信息,说明该进程的相关配置信息还没有被监控,这种情况下该进程只需建立与zookeeper服务器之间的短连接,从所述zookeeper服务器中获取自身配置信息并储存在本地磁盘,以使该配置信息也得到监控。
由此可见:依据本发明提供的方法,每个服务器不需要建立每个进程与zookeeper服务器之间的长连接,而是利用进程间的锁和本地磁盘的共享,只建立一个进程与zookeeper服务器之间的长连接,并利用最初时的短连接方式,就能够保证所有进程的配置信息都得到监控,同时降低zookeeper服务器的负载。
上述基于zookeeper的信息配置方法实施例1中将配置信息储存在本地磁盘中,由于进程查看本地磁盘并从中获取自身对应的配置信息的处理速率低下,导致整个服务器的进程处理性能低下,因此,本发明还提供了一种任选方案。
参见图2,示出了本发明实施例一种基于zookeeper的信息配置方法实施例2的流程图,所述方法包括:
步骤201,启动一个进程占有进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控共享内存中所有配置信息,以使所述zookeeper服务器在配置信息发生变动时,向所述进程发送更新配置信息通知;
步骤202,所述进程根据接收到的更新配置信息通知,从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘和共享内存中,以使待读取配置信息的进程从共享内存和本地磁盘中查找自身对应的配置信息,若查找到对应的配置信息,所述待读取配置信息的进程从共享内存中读取自身对应的配置信息;若没有查找到对应的配置信息,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,并从所述zookeeper服务器中获取自身对应的配置信息并储存在共享内存和本地磁盘中。
当服务器中的任意一个进程需要运行时需要先获取自身配置信息,首先查看共享内存中是否保存对应的配置信息,若没有,再查看本地磁盘中是否保存对应的配置信息,步骤202中可知任意一个进程的配置信息当保存在共享内存的同时都会保存在本地磁盘中,因此,本地磁盘和共享内存中所保存的配置信息是一致的。只需要查看其中任意一个即可,但是考虑到,共享内存中的数据可能由于某些原因造成数据丢失,而本地磁盘中的数据一般都是持久化保存的、不容易丢失。因此,将配置信息储存在本地磁盘的方式保证了配置信息的可靠性,将配置信息储存在共享内存的方式保证了系统的运行速率,提高系统性能。因此,在共享内存和本地磁盘都进行查看避免信息查看疏漏。
与实施例1所不同的是,本实施例中在将所述配置信息储存在本地磁盘之后,还增加了将所述配置信息储存在共享内存,进程从共享内存中读取数据的速度要远远大于从本地磁盘中读取数据的速度,因此通过从共享内存中读取对应的配置信息,以提高进程配置信息的速率。
下面以web服务器为例对上述一种基于zookeeper的信息配置方法实施例2做进一步解释说明,具体请参与图3,为本发明实施例提供的一种基于zookeeper的信息配置框架图。
一个web服务器通常运行128个快速页模式(英文fast page mode,缩写fpm)进程提供服务,按照上述步骤201和步骤202,启动一个进程占用进程间的锁,并建立一个进程与zookeeper服务器之间的长连接,然后所述进程根据所述更新配置信息通知从所述zookeeper服务器中获取配置信息,并更新至本地磁盘和共享内存中,当web服务器中任意一个进程需要获取配置信息时,直接从共享内存中查找对应的配置信息,若查找到,直接获取该配置信息;若没有通过建立与zookeeper服务器之间的短连接,以获取自身对应的配置信息,并储存在本地磁盘和共享内存中。可见,整个web服务器只需要与zookeeper服务器之间建立一个长连接,和初次获取配置信息时建立的短连接即可保证所有进程的配置信息得到监控和及时更新。
参与图4,示出的现有技术中的基于zookeeper的信息配置框架图,web服务器中的每个进程都必须与zookeeper服务器之间建立一个长连接,相比之下本发明实施例提供的基于zookeeper的信息配置方法,能够大幅度减少与zookeeper之间的长连接,从而在保证服务器中所有进程配置信息得到监控的同时,降低zookeeper服务器的负载。
由上述实施例可以看出,与现有技术相比,本发明的有益效果在于:
通过启动一个进程占有进程间的锁,并建立该进程与zookeeper服务器之间的长连接,就能够保证进程运行所使用的配置信息及时得到更新保存,降低zookeeper服务器的负载。另外,通过将配置信息储存在共享内存中,以使待读取配置信息的进程通过共享内存获取自身对应的配置信息,提高获取配置信息的速率,进而提高服务器的处理性能。
与基于zookeeper的信息配置方法实施例1相对应,本发明实施例还提供了一种基于zookeeper的信息配置装置。
参见图5,示出了本发明实施例一种基于zookeeper的信息配置装置实施例1的示意图,所述装置包括:监控单元301和更新单元302,下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。
监控单元301,用于启动一个进程占用进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有的配置信息,以使所述zookeeper服务器在配置信息发生变动时,向所述进程发送更新配置信息通知;
更新单元302,用于通过所述进程根据所述更新配置信息通知从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘中,以使待读取配置信息的进程从本地磁盘中查找自身对应的配置信息,若查找到对应的配置信息,所述待读取配置信息的进程从本地磁盘中读取自身对应的配置信息;若没有查找到对应的配置信息,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,并从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘。
作为本发明一种任选方案,所述监控单元,包括:
第一占有子单元,用于启动一个专用于监控进程配置信息的进程占有进程间的锁;
第一监控子单元,用于建立所述专用于监控进程配置信息的进程与zookeeper服务器之间的长连接,通过所述专用监控配置信息的进程监控本地磁盘中所有的配置信息。
作为本发明一种任选方案,,所述监控单元,包括:
第二占有子单元,用于启动所述待读取配置信息的进程占有进程间的锁;
第二监控子单元,用于在所述待读取配置信息的进程中启动一个线程或者一个进程,建立所述线程或者所述进程与zookeeper服务器之间的长连接,通过所述线程或者所述进程监控本地磁盘中所有的配置信息。
作为本发明一种任选方案,所述第二监控子单元,所述第二监控子单元,具体用于在所述待读取配置信息的进程中启动一个异步线程,建立所述异步进程与zookeeper服务器之间的一个长连接,通过所述异步线程监控所述进程间通信中所有进程的配置信息。
由上述实施例可以看出,本发明的有益效果在于:
通过启动一个进程占用进程间的锁,使得该进程对共享数据的修改的时间段内其他进程无法对该共享数据进行任何操作,且该进程对共享数据的操作其他进程都能够立刻知道,建立该进程与zookeeper服务器之间的长连接,该进程扫描本地磁盘,以监控本地磁盘中所有的配置信息。
根据接收到的通知从所述zookeeper服务器中获取对应的配置信息,并更新到本地磁盘中,任意一个进程运行需要获取配置信息时,只需要去本地磁盘获取对应的配置信息,而无需再与zookeeper服务器之间建立长连接;若本地磁盘中没有对应的配置信息,说明该进程的相关配置信息还没有被监控,这种情况下该进程只需建立与zookeeper服务器之间的短连接,从所述zookeeper服务器中获取自身配置信息并储存在本地磁盘,以使该配置信息也得到监控。
由此可见:依据本发明提供的装置,每个服务器不需要建立每个进程与zookeeper服务器之间的长连接,而是利用进程间的锁和本地磁盘的共享,只建立一个进程与zookeeper服务器之间的长连接,并利用最初时的短连接方式,就能够保证所有进程的配置信息都得到监控的同时,降低zookeeper服务器的负载。
与基于zookeeper的信息配置方法实施例2相对应,本发明实施例还提供了一种基于zookeeper的信息配置装置。
参见图6,示出了本发明实施例一种基于zookeeper的信息配置装置实施例2的示意图,所述装置包括:监控单元401、更新单元402和储存单元403,下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。
监控单元401,用于启动一个进程占用进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有的配置信息,以使所述zookeeper服务器在配置信息发生变动时,向所述进程发送更新配置信息通知。
更新单元402,用于通过所述进程根据所述更新配置信息通知从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘中,以使待读取配置信息的进程从本地磁盘中查找自身对应的配置信息,若查找到对应的配置信息,所述待读取配置信息的进程从本地磁盘中读取自身对应的配置信息;若没有查找到对应的配置信息,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,并从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘。
储存单元403,用于将配置信息更新到本地磁盘或者储存在本地磁盘的同时,更新或者储存至共享内存中,以使所述待读取配置信息的进程从所述共享内存中读取自身对应的配置信息。
与一种基于zookeeper的信息配置装置实施例1所不同的是,本实施例增加了储存单元,用于在将配置信息更新或者储存至本地磁盘,同时还更新或者储存至共享内存中。这样处理使得共享内存中同时也保存在所有进程的配置信息,以使所述待读取配置信息的进程从所述共享内存中读取自身对应的配置信息。
由上述实施例可以看出,与现有技术相比,本发明的有益效果在于:
通过启动一个进程占有进程间的锁,并建立该进程与zookeeper服务器之间的长连接,就能够保证进程运行所使用的配置信息及时得到更新保存,降低zookeeper服务器的负载。另外,通过将配置信息储存在共享内存中,以使进程通过共享内存获取配置信息,提高获取配置信息的速率,进而提高服务器的处理性能。
本发明方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于zookeeper的信息配置方法,其包括:
启动一个进程占有进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有配置信息,以使所述zookeeper服务器在配置信息发生变动时,向所述进程发送更新配置信息通知;
所述进程根据接收到的更新配置信息通知,从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘中,以使待读取配置信息的进程从本地磁盘中查找自身对应的配置信息,若查找到对应的配置信息,所述待读取配置信息的进程从本地磁盘中读取自身对应的配置信息,若没有查找到对应的配置信息,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘。
2.根据权利要求1所述的方法,其中,在更新到本地磁盘中之后,还包括:
更新到共享内存中,以使所述待读取配置信息的进程从所述共享内存中查找自身对应的配置信息;
则所述从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘是:
从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘和共享内存中。
3.根据权利要求1或2所述的方法,其中,所述启动一个进程占有进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有配置信息,包括:
启动一个专用于监控进程配置信息的进程占有进程间的锁;
建立所述专用于监控进程配置信息的进程与zookeeper服务器之间的长连接,通过所述专用监控配置信息的进程监控本地磁盘中所有的配置信息。
4.根据权利要求1或2所述的方法,其中,所述启动一个进程占有进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有配置信息,包括:
启动待读取配置信息的进程占有进程间的锁;
在所述待读取配置信息的进程中启动一个线程或者一个进程,建立所述线程或者所述进程与zookeeper服务器之间的长连接,通过所述线程或者所述进程监控本地磁盘中所有的配置信息。
5.根据权利要求4所述的方法,其中,在所述待读取配置信息的进程中启动的一个线程为异步线程。
6.一种基于zookeeper的信息配置装置,其包括:
监控单元,用于启动一个进程占用进程间的锁,并建立所述进程与zookeeper服务器之间的长连接,通过所述进程监控本地磁盘中所有的配置信息,以使所述zookeeper服务器在配置信息发生变动时,向所述进程发送更新配置信息通知;
更新单元,用于通过所述进程根据所述更新配置信息通知从所述zookeeper服务器中获取对应的配置信息并更新到本地磁盘中,以使待读取配置信息的进程从本地磁盘中查找自身对应的配置信息,若查找到对应的配置信息,所述待读取配置信息的进程从本地磁盘中读取自身对应的配置信息;若没有查找到对应的配置信息,所述待读取配置信息的进程建立与zookeeper服务器之间的短连接,并从所述zookeeper服务器中获取自身对应的配置信息并储存在本地磁盘。
7.根据权利要求6所述的装置,其中,所述装置还包括:
储存单元,用于将配置信息更新或者储存至本地磁盘时,并更新或者储存至共享内存,以使所述待读取配置信息的进程从所述共享内存中查找自身对应的配置信息。
8.根据权利要求6或7所述的装置,其中,所述监控单元,包括:
第一占有子单元,用于启动一个专用于监控进程配置信息的进程占有进程间的锁;
第一监控子单元,用于建立所述专用于监控进程配置信息的进程与zookeeper服务器之间的长连接,通过所述专用监控配置信息的进程监控本地磁盘中所有的配置信息。
9.根据权利要求6或7所述的装置,其中,所述监控单元,包括:
第二占有子单元,用于启动待读取配置信息的进程占有进程间的锁;
第二监控子单元,用于在所述待读取配置信息的进程中启动一个线程或者一个进程,建立所述线程或者所述进程与zookeeper服务器之间的长连接,通过所述线程或者所述进程监控本地磁盘中所有的配置信息。
10.根据权利要求9所述的装置,其中,所述第二监控子单元,用于在所述待读取配置信息的进程中启动一个异步线程,建立所述异步进程与zookeeper服务器之间的一个长连接,通过所述异步线程监控所述进程间通信中所有进程的配置信息。
CN201310472913.9A 2013-10-11 2013-10-11 一种基于zookeeper的信息配置方法及装置 Active CN103500111B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610755159.3A CN106371932B (zh) 2013-10-11 2013-10-11 一种基于zookeeper的信息配置方法及装置
CN201310472913.9A CN103500111B (zh) 2013-10-11 2013-10-11 一种基于zookeeper的信息配置方法及装置
PCT/CN2014/086653 WO2015051690A1 (zh) 2013-10-11 2014-09-16 一种基于zookeeper的信息配置方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310472913.9A CN103500111B (zh) 2013-10-11 2013-10-11 一种基于zookeeper的信息配置方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610755159.3A Division CN106371932B (zh) 2013-10-11 2013-10-11 一种基于zookeeper的信息配置方法及装置

Publications (2)

Publication Number Publication Date
CN103500111A true CN103500111A (zh) 2014-01-08
CN103500111B CN103500111B (zh) 2016-09-28

Family

ID=49865326

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310472913.9A Active CN103500111B (zh) 2013-10-11 2013-10-11 一种基于zookeeper的信息配置方法及装置
CN201610755159.3A Active CN106371932B (zh) 2013-10-11 2013-10-11 一种基于zookeeper的信息配置方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201610755159.3A Active CN106371932B (zh) 2013-10-11 2013-10-11 一种基于zookeeper的信息配置方法及装置

Country Status (2)

Country Link
CN (2) CN103500111B (zh)
WO (1) WO2015051690A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468547A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 建立长连接的方法、装置及系统
WO2015051690A1 (zh) * 2013-10-11 2015-04-16 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置
CN104636135A (zh) * 2014-12-31 2015-05-20 北京奇虎科技有限公司 一种节点访问方法和系统、客户端代理和客户端
WO2015188501A1 (zh) * 2014-06-12 2015-12-17 中兴通讯股份有限公司 配置文件更新方法、装置及系统和计算机存储介质
CN105320515A (zh) * 2014-07-31 2016-02-10 腾讯科技(深圳)有限公司 一种流计算系统中的配置方法、装置和系统
CN105677404A (zh) * 2015-12-31 2016-06-15 拉扎斯网络科技(上海)有限公司 一种基于Zookeeper的配置更新方法及装置
CN105897817A (zh) * 2015-09-17 2016-08-24 乐视云计算有限公司 服务器之间的通信方法、服务器及通信系统
CN106453501A (zh) * 2016-09-09 2017-02-22 北京奇虎科技有限公司 一种修改服务的配置信息的方法和装置
CN106648648A (zh) * 2016-12-14 2017-05-10 深圳中顺易金融服务有限公司 基于Zookeeper的配置管理方法及系统
CN106909464A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种信息同步方法及装置
CN106909456A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种信息获取方法及装置
CN107819798A (zh) * 2016-09-13 2018-03-20 阿里巴巴集团控股有限公司 数据获取方法、前台服务器和数据获取系统
CN108874531A (zh) * 2017-05-12 2018-11-23 北京京东尚科信息技术有限公司 用于熔断服务的方法、装置、系统及电子设备
CN109525406A (zh) * 2017-09-18 2019-03-26 飞狐信息技术(天津)有限公司 一种业务系统配置方法及装置
CN110134453A (zh) * 2018-02-09 2019-08-16 网宿科技股份有限公司 服务器配置重载方法及服务器

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220897B (zh) * 2017-05-24 2023-04-07 腾讯科技(深圳)有限公司 一种收益入账的处理方法和装置以及处理系统
CN109976822B (zh) * 2017-12-25 2022-04-08 天翼云科技有限公司 分布式应用的配置方法、装置以及分布式系统
CN109714188B (zh) * 2018-11-02 2023-06-20 中国平安人寿保险股份有限公司 基于Zookeeper的配置数据管理方法、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591934A (zh) * 2011-12-23 2012-07-18 国网电力科学研究院 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法
CN102982141A (zh) * 2012-11-20 2013-03-20 北京搜狐新媒体信息技术有限公司 一种实现分布式数据库代理的方法及装置
US20130117225A1 (en) * 2011-11-03 2013-05-09 Michael W. Dalton Distributed storage medium management for heterogeneous storage media in high availability clusters

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700683B2 (en) * 2011-10-24 2014-04-15 Nokia Corporation Method and apparatus for providing a key-value based storage interface
CN103294701B (zh) * 2012-02-24 2016-12-28 联想(北京)有限公司 一种分布式文件系统以及数据处理的方法
CN103297456B (zh) * 2012-02-24 2016-09-28 阿里巴巴集团控股有限公司 一种分布式系统下共享资源的访问方法及分布式系统
CN102710554B (zh) * 2012-06-25 2015-09-02 深圳中兴网信科技有限公司 分布式消息系统和分布式消息系统的服务状态检测方法
CN103034541B (zh) * 2012-11-16 2016-09-28 北京奇虎科技有限公司 一种分布式消息系统及其中的设备和方法
CN103034540B (zh) * 2012-11-16 2016-05-04 北京奇虎科技有限公司 分布式消息系统及其设备和协调方法
CN103092698B (zh) * 2012-12-24 2017-06-13 中国科学院深圳先进技术研究院 云计算应用自动部署系统及方法
CN103500111B (zh) * 2013-10-11 2016-09-28 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117225A1 (en) * 2011-11-03 2013-05-09 Michael W. Dalton Distributed storage medium management for heterogeneous storage media in high availability clusters
CN102591934A (zh) * 2011-12-23 2012-07-18 国网电力科学研究院 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法
CN102982141A (zh) * 2012-11-20 2013-03-20 北京搜狐新媒体信息技术有限公司 一种实现分布式数据库代理的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鲁阳等: "利用Zookeeper对HDFS中Namenode单点失败的改进方法", 《软件》, 15 December 2012 (2012-12-15) *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015051690A1 (zh) * 2013-10-11 2015-04-16 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置
CN105320527A (zh) * 2014-06-12 2016-02-10 中兴通讯股份有限公司 基于zookeeper分布式搜索引擎的配置文件更新方法、装置及系统
WO2015188501A1 (zh) * 2014-06-12 2015-12-17 中兴通讯股份有限公司 配置文件更新方法、装置及系统和计算机存储介质
CN105320515A (zh) * 2014-07-31 2016-02-10 腾讯科技(深圳)有限公司 一种流计算系统中的配置方法、装置和系统
CN104468547B (zh) * 2014-11-28 2019-03-15 北京奇安信科技有限公司 建立长连接的方法、装置及系统
CN104468547A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 建立长连接的方法、装置及系统
CN104636135A (zh) * 2014-12-31 2015-05-20 北京奇虎科技有限公司 一种节点访问方法和系统、客户端代理和客户端
CN104636135B (zh) * 2014-12-31 2018-05-04 北京奇虎科技有限公司 一种节点访问方法和系统、客户端代理和客户端
CN105897817A (zh) * 2015-09-17 2016-08-24 乐视云计算有限公司 服务器之间的通信方法、服务器及通信系统
CN106909464A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种信息同步方法及装置
CN106909456A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种信息获取方法及装置
CN105677404A (zh) * 2015-12-31 2016-06-15 拉扎斯网络科技(上海)有限公司 一种基于Zookeeper的配置更新方法及装置
CN105677404B (zh) * 2015-12-31 2019-03-19 拉扎斯网络科技(上海)有限公司 一种基于Zookeeper的配置更新方法及装置
CN106453501B (zh) * 2016-09-09 2019-05-31 北京奇虎科技有限公司 一种修改服务的配置信息的方法和装置
CN106453501A (zh) * 2016-09-09 2017-02-22 北京奇虎科技有限公司 一种修改服务的配置信息的方法和装置
CN107819798A (zh) * 2016-09-13 2018-03-20 阿里巴巴集团控股有限公司 数据获取方法、前台服务器和数据获取系统
CN107819798B (zh) * 2016-09-13 2021-08-06 阿里巴巴集团控股有限公司 数据获取方法、前台服务器和数据获取系统
CN106648648A (zh) * 2016-12-14 2017-05-10 深圳中顺易金融服务有限公司 基于Zookeeper的配置管理方法及系统
CN106648648B (zh) * 2016-12-14 2020-09-15 深圳中顺易金融服务有限公司 基于Zookeeper的配置管理方法及系统
CN108874531A (zh) * 2017-05-12 2018-11-23 北京京东尚科信息技术有限公司 用于熔断服务的方法、装置、系统及电子设备
CN109525406A (zh) * 2017-09-18 2019-03-26 飞狐信息技术(天津)有限公司 一种业务系统配置方法及装置
CN110134453A (zh) * 2018-02-09 2019-08-16 网宿科技股份有限公司 服务器配置重载方法及服务器
CN110134453B (zh) * 2018-02-09 2022-07-08 网宿科技股份有限公司 服务器配置重载方法及服务器

Also Published As

Publication number Publication date
CN106371932B (zh) 2020-02-28
CN103500111B (zh) 2016-09-28
WO2015051690A1 (zh) 2015-04-16
CN106371932A (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
CN103500111A (zh) 一种基于zookeeper的信息配置方法及装置
CN107870845B (zh) 面向微服务架构应用的管理方法及系统
CN102200916B (zh) 电子设备、可配置的部件及该部件的配置信息存储方法
CN103714097A (zh) 一种访问数据库的方法和装置
CN104978529A (zh) 网页前端的异常处理方法、异常处理系统及异常处理服务器
CN104065637A (zh) 网页游戏运行的方法及装置
CN104268229A (zh) 一种基于多进程浏览器的资源获得方法及装置
CN104346264A (zh) 系统事件日志处理系统及方法
CN113961510B (zh) 一种文件处理方法、装置、设备及存储介质
CN108255735B (zh) 关联环境测试方法、电子装置及计算机可读存储介质
CN111190823A (zh) Ui自动化测试方法、电子装置及计算机可读存储介质
CN108228812B (zh) 自适应的主节点切换方法及装置
CN112052230A (zh) 多机房数据同步方法、计算设备及存储介质
CN103685083A (zh) 异步管理网络中的通信方法
CN111752560A (zh) 组件生成方法、装置、计算机设备及计算机可读存储介质
CN110908644B (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN113127430A (zh) 镜像信息处理方法、装置、计算机可读介质及电子设备
US20180373811A1 (en) Client Cloud Synchronizer
CN115145381A (zh) 一种远程重置bmc芯片的方法、系统、存储介质及设备
CN110932884B (zh) 云物理机添加多网络的方法及装置
CN113032021A (zh) 系统切换及其数据处理方法、装置、设备及存储介质
CN106445623B (zh) 一种系统组件的启动方法和装置
CN112187842A (zh) 局域网数据处理系统与局域网数据处理方法
CN104050074A (zh) 一种在系统中异步记录日志的方法和装置
CN114185619B (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220715

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.