CN106909456A - 一种信息获取方法及装置 - Google Patents
一种信息获取方法及装置 Download PDFInfo
- Publication number
- CN106909456A CN106909456A CN201510975345.3A CN201510975345A CN106909456A CN 106909456 A CN106909456 A CN 106909456A CN 201510975345 A CN201510975345 A CN 201510975345A CN 106909456 A CN106909456 A CN 106909456A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- zookeeper
- server
- process configuration
- lock
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种信息获取方法及装置,用于解决现有技术中获取进程配置信息的方式给zookeeper带来较大的负载,严重影响zookeeper的处理性能的问题。该方法包括:服务器上提供服务的各进程抢锁,锁是预设的进程间的锁;抢锁成功的进程与所述zookeeper建立长连接,通过建立的长连接对所述服务器的共享内存进行监控,每当监控到共享内存中的进程配置信息与所述zookeeper中的进程配置信息不一致时,获取所述zookeeper中的进程配置信息,并更新至所述共享内存中,以使抢锁失败的进程根据所述共享内存获取进程配置信息。
Description
技术领域
本发明涉及互联网领域,尤其涉及一种信息获取方法及装置。
背景技术
随着互联网上的应用使用普及,应用的用户数量也大大增加,单台服务器远不足为大规模的用户提供服务,因此,对于互联网上的任一应用,通常可以采用分布式***,利用多个服务器一起提供服务。
具体的,每个服务器上都可以有多个提供服务的进程,各个服务器的进程配置信息通常都是一样的,当需要更新某个进程配置信息时,必须手动对各个服务器中的该进程配置信息都进行更新。
目前,通常利用zookeeper对多个服务器中的所有进程配置信息进行集中管理。zookeeper是一个针对大型分布式***的可靠协调***,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
在现有技术中,每个服务器中每个进程分别与zookeeper建立一个长连接,每个进程通过调用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中的进程配置信息不一致时,获取所述zookeeper中的进程配置信息,并更新至所述共享内存中,以使抢锁失败的进程根据所述共享内存获取进程配置信息;
其中,所述共享内存由所述服务器上提供服务的各进程共享。
可选地,所述获取模块具体用于:使抢锁成功的进程启动一个异步线程;通过启动的异步线程,与所述zookeeper建立长连接。
可选地,所述装置还包括:
第一更新模块,用于在抢锁成功的进程将获取的所述zookeeper中的进程配置信息更新至所述共享内存中后,将获取所述zookeeper中的进程配置信息更新至所述服务器的本地磁盘中。
可选地,所述获取模块具体用于:使抢锁失败的进程判断所述共享内存中是否有进程配置信息;若是,则获取所述共享内存中的进程配置信息;否则,根据所述服务器的本地磁盘获取进程配置信息。
可选地,所述获取模块具体用于:使抢锁失败的进程判断所述服务器的本地磁盘中是否有进程配置信息;若是,则获取所述本地磁盘中的进程配置信息;否则,与所述zookeeper建立短连接,通过建立的短连接,获取zookeeper中的进程配置信息,并在获取到进程配置信息后关闭所述短连接。
可选地,所述装置还包括:
第二更新模块,用于使抢锁失败的进程通过建立的短连接,获取zookeeper中的进程配置信息后,将获取的进程配置信息更新至所述共享内存和/或所述本地磁盘中。
可选地,所述装置还包括:
运行模块,用于使所述服务器上提供服务的各进程根据获取的进程配置信息运行。
根据本发明的方案,服务器上提供服务的各进程抢锁,锁是预设的进程间的锁;抢锁成功的进程与所述zookeeper建立长连接,通过建立的长连接对所述服务器的共享内存进行监控,每当监控到共享内存中的进程配置信息与所述zookeeper中的进程配置信息不一致时,获取所述zookeeper中的进程配置信息,并更新至所述共享内存中,以使抢锁失败的进程根据所述共享内存获取进程配置信息;其中,所述共享内存由所述服务器上提供服务的各进程共享。由于每个服务器上只需有一个进程与zookeeper保持长连接,即可以使得该服务器上提供服务的各进程都能够获取到最新的进程配置信息,因此,可以有效地减轻zookeeper的负载,以及减少对zookeeper的处理性能的影响。不仅如此,由于抢锁失败的进程是从共享内存中获取最新的进程配置信息的,而共享内存读写速度很快,因此,可以提高进程获取最新的进程配置信息的实时性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为依据本发明一个实施例的信息获取方法的过程;
图2为基于一种实际应用场景,现有技术中各进程获取进程配置信息时建立的长连接示意图;
图3为基于一种实际应用场景,本发明的方案中各进程获取进程配置信息时建立的长连接示意图;
图4为依据本发明一个实施例的信息获取装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明公开的示例性实施例。虽然附图中显示了本发明公开的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明公开的范围完整的传达给本领域的技术人员。
以下结合附图,详细说明本发明各实施例提供的技术方案。
图1为依据本发明实施例的信息获取方法的过程,该过程的执行主体可以是服务器,更具体地,该过程中的步骤可以是服务器上的进程执行的。所述服务器可以是Web服务器、应用服务器等,所述进程具体可以是提供服务的进程,以Web服务器为例,其提供服务的进程可以是快速页模式(fast page mode,fpm)进程等。本发明对服务器的类型并不做限定。
服务器与zookeeper相互连接(此处的连接指物理连接),服务器上有一个或多个提供服务的进程,zookeeper中有进程配置信息,当需要更新进程配置信息时,可以通过对zookeeper中的进程配置信息进行更新,实现服务器上的各进程的进程配置信息自动地更新。需要说明的是,与zookeeper相互连接的服务器可以不止一个,每个服务器可以分别执行图1中的过程。下面对图1中的过程具体说明。
图1中的过程可以包括以下步骤:
S101:各所述进程抢锁,所述锁是预设的进程间的锁。
本发明实施例中,进程在运行过程中可能需要相关的配置信息,将这些相关的配置信息统称为进程配置信息。当各进程要获取进程配置信息时,可以开始执行步骤S101。
所述锁是进程间的锁,包括但不限于文件锁、System V信号量锁、读写锁、互斥锁等。所述锁可以用于使各进程中至多有一个进程可以获取到特定操作权限,在本发明实施例中,特定操作权限可以是与zookeeper建立长连接的权限。
S202:抢锁成功的进程与所述zookeeper建立长连接,通过建立的长连接对所述服务器的共享内存进行监控,每当监控到共享内存中的进程配置信息与所述zookeeper中的进程配置信息不一致时,获取所述zookeeper中的进程配置信息,并更新至所述共享内存中,以使抢锁失败的进程根据所述共享内存获取进程配置信息;其中,所述共享内存由所述服务器上提供服务的各进程共享。
在本发明实施例中,服务器本地也可以保存有进程配置信息,服务器本地的进程配置信息是可以是由服务器的管理员预先配置的,也可以是由进程从zookeeper获取后再保存的。zookeeper中的进程配置信息是最新的进程配置信息,当要对更新进程配置信息时,首先,可以对zookeeper中的进程配置信息进行更新,然后,对于服务器本地的进程配置信息,则可以根据zookeeper中更新后的进程配置信息相应地进行更新,从而,与zookeeper连接的各服务器本地的进程配置信息可以实现同步。
服务器本地具体可以指服务器的共享内存和/或服务器的本地磁盘。共享内存的优点是读写速度快,便于抢锁失败的各进程快速获取进程配置信息,本地磁盘的优点是可以断电存储,可靠性较高。由此可见,为了提高获取配置信息的实时性,可以优先在共享内存中保存以及更新进程配置信息。
在实际应用中,若初始时共享内存中并没有进程配置信息,则抢锁成功的进程在与zookeeper建立长连接后,可以立即获取zookeeper中的进程配置信息,并保存至共享内存,此后,每当监控到共享内存中的进程配置信息与zookeeper中的进程配置信息不一致时,可以认为zookeeper中的进程配置信息发生了更新(zookeeper中的进程配置信息始终为最新的进程配置信息),进而,可以获取zookeeper中的进程配置信息,以对共享内存中的进程配置信息相应地进行更新,从而,可以实现共享内存与zookeeper中的进程配置信息同步。
在本发明实施例中,长连接是这样的通信连接:在该通信连接上可以连续发送多个数据包,若暂时没有数据包需要发送时,则可以发送链路检测包,以使该通信连接仍然保持连接而不是断开。与长连接相对的是短连接,短连接是这样的通信连接:在该通信连接上可以连续发送多个数据包,若暂时没有数据包需要发送时,则断开该通信连接。
根据上面的说明,由于抢锁成功的进程在监视过程中,可能需要不止一次地从zookeeper获取最新的进程配置信息,因此,抢锁成功的进程与zookeeper建立的连接可以是长连接,以便于在较长的一段时间内可以由该抢锁成功的进程负责从zookeeper获取最新的进程配置信息。当然,在实际应用中,在较长的一段时间内,也可以多次执行图1中的过程,在这种情况下,每次抢锁成功的进程也可能不同。
通过上述方法,由于每个服务器上只需有一个进程与zookeeper保持长连接,即可以使得该服务器上提供服务的各进程都能够获取到最新的进程配置信息,而不用像现有技术那样每个服务器上的每个进程分别要与zookeeper保持一个长连接,因此,可以有效地减轻zookeeper的负载,以及减少对zookeeper的处理性能的影响。
为了便于理解,下面对图1中的步骤进一步地说明。
对于步骤S102,抢锁成功的进程可以启动一个线程,或启动一个进程,然后通过启动的该线程或该进程,与zookeeper建立长连接。前一种方案的优点是不用启动额外的进程,对服务器负担较小;后一种方案的优点是新启动的进程和抢锁成功的进程是相互独立的,并不共享资源,因此,新启动的进程不会影响抢锁成功的进程提供服务的效率,新启动的进程与抢锁成功的进程可以相互传递获取的最新的进程配置信息。在实际应用中,可以根据场景需要选择更合适的方案。在发明实施例中,主要针对前一种方案进行具体说明。
依据本发明的一个实施例,当采用上述的前一种方案时,对于步骤S102与所述zookeeper建立长连接,具体可以包括:启动一个异步线程;通过启动的异步线程,与所述zookeeper建立长连接。其中,采用异步线程有以下优点:在该异步线程与zookeeper建立长连接以及后续监视和获取进程配置信息的过程中,该异步线程每当发送一个操作请求,不一定需要等待zookeeper响应后,才能执行相应操作或其他操作,而是可以在等待zookeeper响应的过程中,即可以执行其他操作,由此可见,异步线程的操作效率较高,进而也有利于提高本发明的方案的执行效率。
需要说明的是,异步线程只是基于线程实现步骤S102的实施方式的一种示例,采用同步线程同样也可以实现步骤S102。
依据本发明的一个实施例,在前面已经提到,抢锁成功的进程在从zookeeper获取到最新的进程配置信息后,可以优先将获取的进程配置信息更新至服务器的共享内存中。由于相比于共享内存,磁盘的可靠性更高可以断电存储,因此,为了进一步地提高本发明的方案的可靠性,对于步骤S102,抢锁成功的进程将获取的进程配置信息更新至服务器的共享内存中后,还可以执行以下步骤:将获取zookeeper中的进程配置信息更新至服务器的本地磁盘中。这样的话,本地磁盘中的进程配置信息和共享内存中的进程配置信息可以互为备份,可靠性较高。
抢锁失败的各进程可以从服务器的本地磁盘和/或共享内存获取到最新的进程配置信息,具体的,可以优先从共享内存获取进程配置信息,当共享内存存在异常(如共享内存中并未保存有进程配置信息,或者,已保存进程配置信息被误删除,等等)导致无法从共享内存获取进程配置信息时,则可以根据本地磁盘获取进程配置信息。
依据本发明的一个实施例,对于步骤S102,抢锁失败的各进程根据所述共享内存获取配置信息,可以包括:对于抢锁失败的每个进程,该进程可以判断共享内存中是否有进程配置信息,若是,则获取共享内存中的进程配置信息,否则,根据服务器的本地磁盘获取进程配置信息。
在实际应用中,不仅共享内存可能发生异常,本地磁盘也可能发生异常,比如,本地磁盘上的数据被误删除等。当抢锁失败的各进程既无法从共享内存获取进程配置信息,也无法从本地磁盘中获取进程配置信息时,则可以由抢锁失败的部分或全部进程直接从zookeeper服务器或抢锁成功的进程获取进程配置信息。
沿用本发明的上一个实施例继续说明,抢锁失败的进程根据服务器的本地磁盘获取进程配置信息,具体可以包括:抢锁失败的进程判断服务器的本地磁盘中是否有进程配置信息;若是,则获取本地磁盘中的进程配置信息;否则,与zookeeper建立短连接,通过建立的短连接,获取zookeeper中的进程配置信息,并在获取到进程配置信息后关闭所述短连接。
由于建立的短连接在获取到进程配置信息会立刻关闭,即短连接维持的时间较短,因此,即使各进程均与zookeeper建立一个短连接,相比于现有技术,给zookeeper带来的负担较小。
进一步地,若任一抢锁失败的进程通过建立的短连接从zookeeper获取到进程配置信息,则该进程可以将获取到的进程配置信息更新至共享内存和/或本地磁盘中。这样的话,尚未获取到进程配置信息的其他进程可以从服务器本地获取进程配置信息,而不需要再通过建立短连接的方式获取进程配置信息。
依据本发明的一个实施例,对于服务器上提供服务器的各进程,进程启动后的在任意时间里,每当进程获取到进程配置信息(一般是最新的进程配置信息),该进程可以根据本次获取到的进程配置信息运行。
通过上述方法,zookeeper中的进程配置信息、服务器本地的进程配置信息以及各进程运行依据的进程配置信息可以实现同步,而且同步实时性较好。
依据本发明的一个实施例,在本发明的方案的实施过程中,可能会同时有不止一个进程对共享内存或本地磁盘进行针对进程配置信息的读写操作,为了防止这些并行的读写操作可能导致进程配置信息出错的情况,可以对给本地磁盘和共享内存中的进程配置信息也加上进程间的锁(如读写锁),使得在同一时刻,最多只有一个进程(即占有该读写锁的进程,可以是通过建立的长连接获取到的进程配置信息的进程,也可以是通过建立的短连接获取到的进程配置信息的进程)可以执行写操作,且在写操作的执行过程中,不允许其他进程执行读操作,占有该读写锁的进程执行完写操作后,可以释放该读写锁。
上面对图1进行了详细说明。为了便于理解,本发明还基于一种实际应用场景,对本发明的方案与现有技术的方案进行了对比,如图2、图3所示。
首先对该实际应用场景进行说明。在该实际应用场景,Web服务器(可以有一个或多个,在该例中示出了其中一个)与zookeeper相互连接,Web服务器上有多个fpm进程,zookeeper上有fpm进程可以使用的进程配置信息。
图2为现有技术中各fpm进程获取进程配置信息时建立的长连接示意图。
在图2中可以看到,Web服务器上的每个fpm进程分别与zookeeper建立了一个长连接,用于从zookeeper获取最新的进程配置信息。因此,zookeeper服务器与每个Web服务器之间都要长期维持大量长连接,负担较重,影响处理性能。
图3为本发明的方案中各fpm进程获取进程配置信息时建立的长连接示意图。
在图3中可以看到,Web服务器上只有一个fpm进程(即各fpm进程中抢锁成功的fpm进程)与zookeeper建立了长连接。该在长连接的存续时间内中,可以一直由fpm进程负责从zookeeper获取最新的进程配置信息,并将获取的进程配置信息更新至Web服务器的共享内存和本地磁盘,以便于其他fpm进程获取。初始时,共享内存和本地磁盘中可以保存有进程配置信息,也可以未保存有进程配置信息。显然,相比于图2中的现有技术,图3中的本发明的方案每个Web服务器只需与zookeeper建立一条长连接即可,有效地减轻了zookeeper的负担,减小了对zookeeper的处理性能的影响。
以上为本发明实施例提供的一种信息获取方法,基于同样的发明思路,本发明实施例还提供一种信息获取装置,如图4所示。
图4为依据本发明一个实施例的信息获取装置结构示意图,服务器与zookeeper相互连接,服务器上有多个提供服务的进程,zookeeper中有进程配置信息,所述装置位于服务器上,所述装置包括:
抢锁模块401,用于使各所述进程抢锁,所述锁是预设的进程间的锁;
获取模块402,用于使抢锁成功的进程与所述zookeeper建立长连接,通过建立的长连接对所述服务器的共享内存进行监控,每当监控到共享内存中的进程配置信息与所述zookeeper中的进程配置信息不一致时,获取所述zookeeper中的进程配置信息,并更新至所述共享内存中,以使抢锁失败的进程根据所述共享内存获取进程配置信息;
其中,所述共享内存由所述服务器上提供服务的各进程共享。
可选地,所述获取模块402具体用于:使抢锁成功的进程启动一个异步线程;通过启动的异步线程,与所述zookeeper建立长连接。
可选地,所述装置还包括:
第一更新模块403,用于在抢锁成功的进程将获取的所述zookeeper中的进程配置信息更新至所述共享内存中后,将获取所述zookeeper中的进程配置信息更新至所述服务器的本地磁盘中。
可选地,所述获取模块402具体用于:使抢锁失败的进程判断所述共享内存中是否有进程配置信息;若是,则获取所述共享内存中的进程配置信息;否则,根据所述服务器的本地磁盘获取进程配置信息。
可选地,所述获取模块402具体用于:使抢锁失败的进程判断所述服务器的本地磁盘中是否有进程配置信息;若是,则获取所述本地磁盘中的进程配置信息;否则,与所述zookeeper建立短连接,通过建立的短连接,获取zookeeper中的进程配置信息,并在获取到进程配置信息后关闭所述短连接。
可选地,所述装置还包括:
第二更新模块404,用于使抢锁失败的进程通过建立的短连接,获取zookeeper中的进程配置信息后,将获取的进程配置信息更新至所述共享内存和/或所述本地磁盘中。
可选地,所述装置还包括:
运行模块405,用于使所述服务器上提供服务的各进程根据获取的进程配置信息运行。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的拦截应用程序中的植入信息的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”或“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***﹑大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
Claims (10)
1.一种信息获取方法,其特征在于,服务器与zookeeper相互连接,所述服务器上有多个提供服务的进程,所述zookeeper中有进程配置信息,所述方法包括:
各所述进程抢锁,所述锁是预设的进程间的锁;
抢锁成功的进程与所述zookeeper建立长连接,通过建立的长连接对所述服务器的共享内存进行监控,每当监控到共享内存中的进程配置信息与所述zookeeper中的进程配置信息不一致时,获取所述zookeeper中的进程配置信息,并更新至所述共享内存中,以使抢锁失败的进程根据所述共享内存获取进程配置信息;
其中,所述共享内存由所述服务器上提供服务的各进程共享。
2.根据权利要求1所述的方法,其特征在于,与所述zookeeper建立长连接,具体包括:
启动一个异步线程;
通过启动的异步线程,与所述zookeeper建立长连接。
3.根据权利要求1所述的方法,其特征在于,更新至所述共享内存中后,所述方法还包括:
将获取所述zookeeper中的进程配置信息更新至所述服务器的本地磁盘中。
4.根据权利要求1所述的方法,其特征在于,根据所述共享内存获取配置信息,具体包括:
判断所述共享内存中是否有进程配置信息;
若是,则获取所述共享内存中的进程配置信息;
否则,根据所述服务器的本地磁盘获取进程配置信息。
5.根据权利要求4所述的方法,其特征在于,根据所述服务器的本地磁盘获取进程配置信息,具体包括:
判断所述服务器的本地磁盘中是否有进程配置信息;
若是,则获取所述本地磁盘中的进程配置信息;
否则,与所述zookeeper建立短连接,通过建立的短连接,获取zookeeper中的进程配置信息,并在获取到进程配置信息后关闭所述短连接。
6.根据权利要求5所述的方法,其特征在于,通过建立的短连接,获取zookeeper中的进程配置信息后,所述方法还包括:
将获取的进程配置信息更新至所述共享内存和/或所述本地磁盘中。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述服务器上提供服务的各进程根据获取的进程配置信息运行。
8.一种信息获取装置,其特征在于,服务器与zookeeper相互连接,所述服务器上有多个提供服务的进程,所述zookeeper中有进程配置信息,所述装置位于所述服务器上,所述装置包括:
抢锁模块,用于使各所述进程抢锁,所述锁是预设的进程间的锁;
获取模块,用于使抢锁成功的进程与所述zookeeper建立长连接,通过建立的长连接对所述服务器的共享内存进行监控,每当监控到共享内存中的进程配置信息与所述zookeeper中的进程配置信息不一致时,获取所述zookeeper中的进程配置信息,并更新至所述共享内存中,以使抢锁失败的进程根据所述共享内存获取进程配置信息;
其中,所述共享内存由所述服务器上提供服务的各进程共享。
9.根据权利要求8所述的装置,其特征在于,所述获取模块具体用于:使抢锁成功的进程启动一个异步线程;通过启动的异步线程,与所述zookeeper建立长连接。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一更新模块,用于在抢锁成功的进程将获取的所述zookeeper中的进程配置信息更新至所述共享内存中后,将获取所述zookeeper中的进程配置信息更新至所述服务器的本地磁盘中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510975345.3A CN106909456A (zh) | 2015-12-22 | 2015-12-22 | 一种信息获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510975345.3A CN106909456A (zh) | 2015-12-22 | 2015-12-22 | 一种信息获取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106909456A true CN106909456A (zh) | 2017-06-30 |
Family
ID=59199451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510975345.3A Pending CN106909456A (zh) | 2015-12-22 | 2015-12-22 | 一种信息获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106909456A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363619A (zh) * | 2018-03-07 | 2018-08-03 | 深圳市酷开网络科技有限公司 | 服务流程控制方法、服务器及计算机可读存储介质 |
CN109582386A (zh) * | 2018-11-09 | 2019-04-05 | 聚好看科技股份有限公司 | 服务启动处理方法、装置、电子设备及可读存储介质 |
CN109582384A (zh) * | 2018-10-26 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 配置信息的更新方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020112054A1 (en) * | 2001-02-12 | 2002-08-15 | International Business Machines Corporation | Method and system for automated session resource clean-up in a distributed client-server environment |
CN103500111A (zh) * | 2013-10-11 | 2014-01-08 | 北京奇虎科技有限公司 | 一种基于zookeeper的信息配置方法及装置 |
CN103856392A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 消息推送方法及其外发服务器和外发服务器*** |
-
2015
- 2015-12-22 CN CN201510975345.3A patent/CN106909456A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020112054A1 (en) * | 2001-02-12 | 2002-08-15 | International Business Machines Corporation | Method and system for automated session resource clean-up in a distributed client-server environment |
CN103856392A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 消息推送方法及其外发服务器和外发服务器*** |
CN103500111A (zh) * | 2013-10-11 | 2014-01-08 | 北京奇虎科技有限公司 | 一种基于zookeeper的信息配置方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363619A (zh) * | 2018-03-07 | 2018-08-03 | 深圳市酷开网络科技有限公司 | 服务流程控制方法、服务器及计算机可读存储介质 |
CN109582384A (zh) * | 2018-10-26 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 配置信息的更新方法及装置 |
CN109582386A (zh) * | 2018-11-09 | 2019-04-05 | 聚好看科技股份有限公司 | 服务启动处理方法、装置、电子设备及可读存储介质 |
CN109582386B (zh) * | 2018-11-09 | 2022-02-25 | 聚好看科技股份有限公司 | 服务启动处理方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110535831B (zh) | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 | |
US11595252B2 (en) | Composable edge device platforms | |
RU2712815C1 (ru) | Защита сетевых устройств посредством межсетевого экрана | |
CN106713487A (zh) | 数据的同步方法和装置 | |
CN107070972A (zh) | 一种分布式文件处理方法及装置 | |
US20150026125A1 (en) | System and method for synchronizing data between communication devices in a networked environment without a central server | |
CN103685608B (zh) | 一种自动配置安全虚拟机ip地址的方法及装置 | |
CN105407117B (zh) | 分布式备份数据的方法、装置和*** | |
US20170171295A1 (en) | File upload and download methods and associated server | |
US10063429B2 (en) | Systems and methods for optimizing computer network operations | |
EP2956854A1 (en) | Computer system supporting remotely managed it services | |
CN112817791A (zh) | 一种工作面集群开采状态的移动端监控方法 | |
CN108628706A (zh) | 数据备份的方法、装置、***及存储介质 | |
CN106909456A (zh) | 一种信息获取方法及装置 | |
CN109189749A (zh) | 文件同步方法及终端设备 | |
CN110502572A (zh) | 一种数据同步的方法及服务器 | |
CN108139936A (zh) | 提供对自部署的虚拟应用中的虚拟机的串行端口的访问的方法、装置和*** | |
EP3616389B1 (en) | Collaborative hosted virtual systems and methods | |
CN108270846A (zh) | 一种云环境下支持安全操作***动态部署的便携式装置 | |
CN104536852B (zh) | 数据恢复方法及装置 | |
CN115454636A (zh) | 一种容器云平台gpu资源调度方法、装置及应用 | |
CN106941418B (zh) | Ssl vpn配置信息的同步方法和装置 | |
CN110268378A (zh) | 创建虚拟自动化解决方案的数据备份的方法,实施方法的计算机程序和按方法运行的虚拟服务器 | |
CN109063011A (zh) | 日志处理方法、电子装置及计算机可读存储介质 | |
CN110324365A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170630 |
|
RJ01 | Rejection of invention patent application after publication |