基于zookeeper的连接方法和装置、存储介质及电子设备与流程

文档序号:33174872发布日期:2023-02-04 03:20阅读:41来源:国知局
基于zookeeper的连接方法和装置、存储介质及电子设备与流程

1.本发明涉及计算机技术领域,具体而言,涉及一种基于zookeeper的连接方法和装置、存储介质及电子设备。


背景技术:

2.相关技术中,客户端/服务器(client/serve,c/s)架构系统中,服务器端(server)一般都是以集群的方式对外提供服务,客户端(client)在连接到具体的某一个服务端后,就可以对其发起请求调用。但是当服务端异常时,客户端无法及时判断当前服务器的状态,从而影响当前客户端及时获取到服务器端的数据或出现连接超时等情况,影响系统可用性,用户体检效果较差。


技术实现要素:

3.本发明实施例提供了一种基于zookeeper的连接方法和装置、存储介质及电子设备,以至少解决相关技术中c/s系统的可用性较差以及用户体验效果不佳的技术问题。
4.根据本发明实施例的一个方面,提供了一种基于zookeeper的连接方法,包括:在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态的zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接。
5.根据本发明实施例的另一方面,还提供了一种基于zookeeper的连接装置,包括:创建单元,在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;第一发送单元,用于在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;第一确定单元,用于若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;第一连接单元,用于使所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接。
6.根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的基于zookeeper的连接方法。
7.根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机
可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述基于zookeeper的连接方法。
8.在本技术实施例中,通过在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态的zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接的方法,通过多个客户端来验证当前客户端连接的服务器是否处于异常状态,不仅可以避免客户端连接服务超时的情况,而且可以准确判断客户端的存活状态,以便客户端及时变换服务器的连接,提高系统的可用性,提高用户体检效果,进而解决了相关技术中c/s系统的可用性较差以及用户体验效果不佳的技术问题。
附图说明
9.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
10.图1是根据本发明实施例的一种可选的基于zookeeper的连接方法的应用环境的示意图;
11.图2是根据本发明实施例的另一种可选的基于zookeeper的连接方法的应用环境的示意图;
12.图3是根据本发明实施例的一种可选的基于zookeeper的连接方法的流程示意图;
13.图4是根据本发明实施例的一种可选的客户端和服务器连接示意图;
14.图5是根据本发明实施例的一种可选的客户端和服务器连接架构示意图;
15.图6是根据本发明实施例的另一种可选的基于zookeeper的连接方法的流程示意图;
16.图7是根据本发明实施例的一种可选的基于zookeeper的连接装置的结构示意图;
17.图8是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
18.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
19.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
20.根据本发明实施例的一个方面,提供了一种基于zookeeper的连接方法,作为一种可选地实施方式,上述基于zookeeper的连接方法可以但不限于应用于如图1所示的应用环境中。该应用环境中包括:与用户进行人机交互的终端设备102、网络104、服务器106。用户108与终端设备102之间可以进行人机交互,终端设备102中运行有基于zookeeper的连接应用程序。上述终端设备102中包括人机交互屏幕1022,处理器1024及存储器1026。人机交互屏幕1022用于显示客户端和服务器的连接状态;处理器1024用于确定当前客户端与第一服务器是否建立连接。存储器1026用于存储客户端和服务器的连接状态,以及zookeeper服务中注册的服务器的注册信息。
21.此外,服务器106中包括数据库1062及处理引擎1064,数据库1062中用于存储上述客户端和服务器的连接状态,以及zookeeper服务中注册的服务器的注册信息。处理引擎1064用于在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态的zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接;将建立通信连接的结果发送至上述终端设备102的客户端。
22.在一个或多个实施例中,本技术上述基于zookeeper的连接方法可以应用于图2所示的应用环境中。如图2所示,用户202与用户设备204之间可以进行人机交互。用户设备204中包含有存储器206和处理器208。本实施例中用户设备204可以但不限于参考执行上述终端设备102所执行的操作,以获取客户端和服务器的连接结果。
23.可选地,上述终端设备102和用户设备204包括但不限于为手机、平板电脑、笔记本电脑、pc机,车载电子设备,可穿戴设备等终端,上述网络104可以包括但不限于无线网络或有线网络。其中,该无线网络包括:wifi及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器106可以包括但不限于任何可以进行计算的硬件设备。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
24.相关技术中,如图4所示,图4中展示了一种客户端与服务器的连接架构,客户端选择服务端集群中的某一台机器创建长连接,连接创建完成之后,就可以与服务器之间进行通信请求。这里,一个服务器可以与一个客户端建立通信连接,一个服务器也可以与多个客户端建立连接。图4中,例如,当server2出现故障,例如宕机时,client2和client3就会一直接收不到server2发送的数据,出现连接超时等情况,影响系统可用性,用户体检效果较差。
25.为了解决上述技术问题,作为一种可选地实施方式,如图3所示,本发明实施例提供了一种基于zookeeper的连接方法,包括如下步骤:
26.s302,在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态的zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器。
27.zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是google的chubby一个开源的实现,是hadoop和hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,其提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
28.在本发明实施例中,当前客户端与第一服务器建立通信连接的情况下,当前客户端创建用于监听第一服务器存活状态的zookeeper监听线程,第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器,或者第一服务器为上述服务器列表中连接客户端最少的服务器。需要说明的是,用于监听第一服务器存活状态的zookeeper监听线程包括但不限于客户端向服务器发送心跳检测请求,根据zookeeper中服务器的反馈信息来监听第一服务器存活状态的线程。
29.s304,在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端。
30.具体地,在本发明实施例中,当前客户端确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点(client_leader),领导者节点调用客户端集合对所述第一服务器发起异常检测,即领导者节点控制客户端集合中的每个客户端均向第一服务器发送心跳检测请求,判断第一服务器是否正常。
31.s306,若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态。
32.具体地,在本发明实施例中,第一数量包括客户端集合中客户端总数的一半或一半以上。例如领导者节点接收到超过客户端总数一半的客户端发送的检测异常信息,异常信息包括第一服务器未反馈心跳信息或宕机等,此时,可以精确的判断第一服务器处于异常状态。
33.s308,所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接。
34.具体地,当判断第一服务器处于异常状态时,当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接,也就是说,当前客户端可以连接到其他正常服务器,保持业务的正常进行。
35.在本技术实施例中,通过在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态的zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接的方法,通过多个客户端来验证当前客户端连接的服务器是否处于异常状态,不仅可以避免客户端连接服务超时的情况,而且可以准确
判断客户端的存活状态,以便客户端及时变换服务器的连接,提高系统的可用性,提高用户体检效果,进而解决了相关技术中c/s系统的可用性较差以及用户体验效果不佳的技术问题。
36.在一个或多个实施例中,所述基于zookeeper的连接方法还包括:
37.若所述领导者节点未接收到第一数量的客户端发送的检测异常信息,则控制所述当前客户端发送第二数量的心跳请求至所述第一服务器;
38.当每个所述心跳请求均请求失败时,则确定所述第一服务器处于异常状态。
39.具体地,例如领导者节点接收到小于客户端总数一半的客户端发送的检测异常信息,或者仅有个别客户端发送的检测异常信息,此时无法准确判断第一服务器是否出现异常,当前客户端发送多次的心跳请求至所述第一服务器,当每个所述心跳请求均请求失败时,即未收到第一服务器的反馈信息时,则可以确定所述第一服务器处于异常状态。通过上述技术手段,可以精准的判断出当前服务器的状态,以便服务器重新连接其他服务器。
40.在一个或多个实施例中,所述控制所述当前客户端发送第二数量的心跳请求至所述第一服务器,包括:
41.在预设时间间隔内未接收到所述第一服务器的心跳反馈信息时,控制所述当前客户端继续发送心跳请求至所述第一服务器,直至所述心跳请求的次数达到所述第二数量。
42.具体地,在本发明实施例中,这里的时间间隔和第二数量可以根据实际情况进行人为设定,例如时间间隔设置为5秒,第二数量为3,即在3秒内未接收到第一服务器的心跳反馈信息时,当前客户端继续发送2心跳请求至所述第一服务器。
43.在一个或多个实施例中,所述创建用于监听所述第一服务器存活状态的zookeeper监听线程,包括:
44.创建心跳监测线程,所述心跳监测线程用于从所述zookeeper服务中获取所述第一服务器存活状态。在本发明实施例中,zookeeper服务存储客户端发送的心态检测报文,以及服务器的反馈信息,根据反馈信息转换为纯活状态信息。当前客户端创建心跳监测线程后,可以从zookeeper服务中获取到与当前客户端通信连接的服务器的存活状态。
45.在一个或多个实施例中,所述创建用于监听所述第一服务器存活状态的zookeeper监听线程之之前,所述方法还包括:
46.所述当前客户端基于所述zookeeper服务获取所述服务器列表对应的连接信息;
47.从所述连接信息中确定与客户端连接数最少的服务器,作为所述第一服务器;所述当前客户端建立与所述第一服务器之间的连接。
48.从所述连接信息中确定与客户端连接数最少的服务器,作为所述第一服务器;所述当前客户端建立与所述第一服务器之间的连接。
49.具体地,在本发明实施例中,如图5所示,例如当前客户端为clinet2基于所述zookeeper服务获取所述服务器列表对应的连接信息;server1连接clinet1,server2连接clinet3和clinet4,server3连接clinet5;此时例如将server1作为第一服务器,clinet2可以与或server1建立通信连接。
50.在一个或多个实施例中,所述基于zookeeper的连接方法还包括:
51.在所述当前客户端启动时,判断所述客户端集合中是否存在所述领导者节点;
52.若不存在,则参与竞选领导者节点,当竞选成功时将所述当前客户端的网络地址
信息存储到所述zookeeper服务中;
53.当竞选失败时,则建立对领导者节点的监听线程,当领导者节点失效时,重新发起领导者节点的竞选请求。
54.具体地,这里参与竞选领导者节点包括但不限于多个客户端节点向zookeeper服务发起竞选请求,zookeeper服务最先接收到请求的客户端可以作为领导者节点,此时可以将竞选成功的领导者节点的ip地址信息和mac地址信息存储到所述zookeeper服务中。
55.在一实施例中,例如当前客户端竞选领导者节点失败时,则建立对领导者节点的监听线程,当领导者节点失效(例如下线后)时,重新发起领导者节点的竞选请求。
56.在一个或多个实施例中,所述基于zookeeper的连接方法还包括:
57.当服务器节点启动时,将服务器节点的节点信息注册到所述zookeeper服务中;其中,所述节点信息包括服务器的ip地址以及端口信息;接收客户端的连接请求信息。
58.具体地,如图5所示,当服务器节点(server1,server2,server3)启动时,将服务器节点的节点信息注册到所述zookeeper服务中;其中,所述节点信息包括服务器的ip地址以及端口信息;接收客户端的连接请求信息。当服务器端(server端)节点启动后,将当前节点信息注册到zookeeper上,注册节点类型为临时节点。
59.在一应用实施例中,如图6所示,所述基于zookeeper的连接方法还包括:
60.1.客户端启动后竞争client_leader
61.当前客户端启动后会从zookeeper服务中查看是否已存在client_leader(领导者节点),如果不存在则去竞选client_leader,如果当前客户端竞选成功后则标记当前客户端对应的ip信息到zookeeper服务中;若竞选失败则发起对client_leader的监听线程,当client_leader失效后,重新发起client_leader的竞选请求。
62.2.客户端连接服务端后创建心跳线程
63.客户端通过zookeeper获取到服务器端列表信息后,则选择其中一个连接数最少的服务器创建长连接;
64.创建连接后,客户端创建一个心跳线程,心跳线程定时发送心跳请求,用于监测服务端是否正常;
65.当客户端心跳检测服务端异常时,则通过设定好的退避指数,这里退避包括但不限于预设的等待时长,若预设的等待时长内未收到服务器的反馈信息,此时需要重试发送心跳请求,如果三次心跳请求均失败,则判断与当前客户端连接的服务器异常,此时重连服务端列表中的其他服务器。
66.3.客户端通过zookeeper监听连接服务端的存活状态
67.当前客户端对已连接的服务器,创建zookeeper监听,用于监听服务器的存活状态;当监听到服务端异常时,则组织所有客户端快速对当前异常服务器发起一次心跳检测,如果过半的客户端认为该服务端异常,则判定服务器为异常状态,此时客户端重新选择服务端列表中的其他服务器进行连接;否则当前客户端通过设定好的上述退避指数,来重试发送心跳请求,如果三次心跳请求均失败,则判断与当前客户端连接的服务器异常,此时重连服务端列表中的其他服务器。
68.本发明实施例通过zookeeper对服务端的监听和客户端自己的心跳线程检测,可以实现当服务器端异常时,客户端能够快速监听到该异常,并通过其他客户端来进行总体
判断,最终判定服务端的可用性,从而能实现服务器异常后客户端的通信连接转移。
69.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
70.根据本发明实施例的另一个方面,还提供了一种用于实施上述基于zookeeper的连接方法的基于zookeeper的连接装置。如图7所示,该装置包括:
71.创建单元702,在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;
72.第一发送单元704,用于在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;
73.第一确定单元706,用于若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;
74.第一连接单元708,用于使所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接。
75.在本发明实施例中,通过在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态的zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接的方法,通过多个客户端来验证当前客户端连接的服务器是否处于异常状态,不仅可以避免客户端连接服务超时的情况,而且可以准确判断客户端的存活状态,以便客户端及时变换服务器的连接,提高系统的可用性,提高用户体检效果,进而解决了相关技术中c/s系统的可用性较差以及用户体验效果不佳的技术问题。
76.在一个或多个实施例中,上述基于zookeeper的连接装置,还包括:
77.第二发送单元,用于若所述领导者节点未接收到第一数量的客户端发送的检测异常信息,则控制所述当前客户端发送第二数量的心跳请求至所述第一服务器;
78.第二确定单元,用于当每个所述心跳请求均请求失败时,则确定所述第一服务器处于异常状态。
79.在一个或多个实施例中,所述第二发送单元,包括:
80.第一发送模块,用于在预设时间间隔内未接收到所述第一服务器的心跳反馈信息时,控制所述当前客户端继续发送心跳请求至所述第一服务器,直至所述心跳请求的次数达到所述第二数量。
81.在一个或多个实施例中,所述创建单元702,包括:
82.创建模块,用于创建心跳监测线程,所述心跳监测线程用于从所述zookeeper服务中获取所述第一服务器存活状态。
83.在一个或多个实施例中,上述基于zookeeper的连接装置,还包括:
84.获取单元,用于使所述当前客户端基于所述zookeeper服务获取所述服务器列表对应的连接信息;
85.第三确定单元,用于从所述连接信息中确定与客户端连接数最少的服务器,作为所述第一服务器;
86.第二连接单元,用于所述当前客户端建立与所述第一服务器之间的连接。
87.在一个或多个实施例中,上述基于zookeeper的连接装置,还包括:
88.判断单元,用于在所述当前客户端启动时,判断所述客户端集合中是否存在所述领导者节点;
89.竞选单元,用于若不存在,则参与竞选领导者节点,当竞选成功时将所述当前客户端的网络地址信息存储到所述zookeeper服务中;
90.监听单元,用于当竞选失败时,则建立对领导者节点的监听线程,当领导者节点失效时,重新发起领导者节点的竞选请求。
91.在一个或多个实施例中,上述基于zookeeper的连接装置,还包括:
92.注册单元,用于当服务器节点启动时,将服务器节点的节点信息注册到所述zookeeper服务中;其中,所述节点信息包括服务器的ip地址以及端口信息;
93.接收单元,用于接收客户端的连接请求信息。
94.根据本发明实施例的又一个方面,还提供了一种用于实施上述基于zookeeper的连接方法的电子设备,该电子设备可以是图8所示的终端设备或服务器。本实施例以该电子设备为终端为例来说明。如图8所示,该电子设备包括存储器802和处理器804,该存储器802中存储有计算机程序,该处理器804被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
95.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
96.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
97.s1,在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态的zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;
98.s2,在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;
99.s3,若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;
100.s4,所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接。
101.可选地,本领域普通技术人员可以理解,图8所示的结构仅为示意,电子装置电子
设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图8其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图8中所示更多或者更少的组件(如网络接口等),或者具有与图8所示不同的配置。
102.其中,存储器802可用于存储软件程序以及模块,如本发明实施例中的基于zookeeper的连接方法和装置对应的程序指令/模块,处理器804通过运行存储在存储器802内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于zookeeper的连接方法。存储器802可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器802可进一步包括相对于处理器804远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器802具体可以但不限于用于存储服务器的注册信息,以及存储器的存活状态信息。作为一种示例,如图8所示,上述存储器802中可以但不限于包括上述基于zookeeper的连接装置中的创建单元702、第一发送单元704、第一确定单元706与第一连接单元708。此外,还可以包括但不限于上述基于zookeeper的连接装置中的其他模块单元,本示例中不再赘述。
103.可选地,上述的传输装置806用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置806包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置806为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
104.此外,上述电子设备还包括:显示器808,用于显示客户端和服务器的连接状态;和连接总线810,用于连接上述电子设备中的各个模块部件。
105.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
106.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于zookeeper的连接方法,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
107.可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
108.s1,在确定当前客户端与第一服务器建立连接的情况下,创建用于监听所述第一服务器存活状态的zookeeper监听线程;其中,所述第一服务器为在zookeeper服务中已注册的服务器列表中的任一服务器;
109.s2,在确定所述第一服务器出现异常的情况下,将异常状态信息发送至领导者节
点,以使所述领导者节点调用客户端集合对所述第一服务器发起异常检测;其中,所述领导者节点为客户端集合中用于负责进行投票的发起和决议的客户端;
110.s3,若所述领导者节点接收到第一数量的客户端发送的检测异常信息,则确定所述第一服务器处于异常状态;
111.s4,所述当前客户端重新建立与所述服务器列表中除所述第一服务器之外的第二服务器之间的连接。
112.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
113.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
114.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
115.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
116.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
117.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
118.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
119.以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1