CN111901395B - 多集群切换方法及装置 - Google Patents
多集群切换方法及装置 Download PDFInfo
- Publication number
- CN111901395B CN111901395B CN202010648579.8A CN202010648579A CN111901395B CN 111901395 B CN111901395 B CN 111901395B CN 202010648579 A CN202010648579 A CN 202010648579A CN 111901395 B CN111901395 B CN 111901395B
- Authority
- CN
- China
- Prior art keywords
- cluster
- dns
- client
- connection
- thread
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012544 monitoring process Methods 0.000 claims abstract description 91
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims 2
- 238000006243 chemical reaction Methods 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种多集群切换方法及装置,其中,多集群切换方法包括:按照预设的监听周期监听域名服务协议DNS是否发生变换;在监听到所述DNS发生变换的情形下,重启客户端,以令所述客户端连接至变换后的所述DNS指向的第一集群。通过本发明,解决了相关技术中ZooKeeper的DNS发生切换后,客户端无法及时与新的ZooKeeper集群建立连接的问题,以达到改善用户体验的效果。
Description
技术领域
本发明涉及系统构架领域,具体而言,涉及一种多集群切换方法及装置。
背景技术
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,用于为分布式应用提供一致性服务,可提供包括配置维护、域名服务、分布式同步、组服务等的功能。
物联网(Internet of Things,IoT)系统通常在核心机房与备用机房(如云端)各自设置一套独立的ZooKeeper集群,并令其中一方保持为服务Active状态,另一方为休眠Standby状态,以作为主备模式存在。如果处于Active状态的核心机房中的ZooKeeper集群存在整体宕机,或者网络波动等情形,为保证用户的指令可以正常下发,需要对ZooKeeper的内网域名服务协议(Domain Name System,DNS)进行修改,将其指向处于Standby状态下的备用机房中的ZooKeeper集群。
相关技术中,不论是用户设备自身注册到ZooKeeper集群,亦或从ZooKeeper集群获取信息,均会创建一个ZooKeeper客户端对象。上述ZooKeeper客户端对象会和作为服务端的ZooKeeper集群保持一个通过心跳链接维护的长连接,之后的一切增删改查操作都基于这个长连接。
在初始状态,核心机房与备用机房下的相应设备的接入网关都从核心机房的ZooKeeper集群读取数据,而在DNS发生切换后,设备的接入网关和核心机房之间的心跳链接并没有断开,因此最终访问的还是位于核心机房的ZooKeeper集群的服务。
上述机制导致了相关技术中,在上述DNS发生切换后,已经连接的客户端无法得知DNS发生了切换,故不能主动断开连接并且与新的ZooKeeper集群(如备用机房的ZooKeeper集群)建立连接,因此,需要手动重启所有的设备的接入网关。而重启网关会导致所有用户的设备下线,进而严重影响用户体验。
针对上述相关技术中,ZooKeeper的DNS发生切换后,客户端无法及时与新的ZooKeeper集群建立连接的问题,相关技术中尚未提出有效的解决方案。
发明内容
本发明实施例提供一种多集群切换方法及装置,以至少解决相关技术中,ZooKeeper的DNS发生切换后,客户端无法及时与新的ZooKeeper集群建立连接的问题。
根据本发明的一个实施例,提供了一种多集群切换方法,包括:
按照预设的监听周期监听域名服务协议DNS是否发生变换;
在监听到所述DNS发生变换的情形下,重启客户端,以令所述客户端连接至变换后的所述DNS指向的第一集群。
在一可选实施例中,所述监听DNS是否发生变换之前,还包括:
创建监听线程,其中,所述监听线程用于执行以下操作:
按照预设的周期监听DNS是否发生变换;在监听到DNS发生变换的情形下,重启客户端,以令所述客户端连接至变换后的DNS指向的所述第一集群。
在一可选实施例中,所述创建监听线程,包括:
在创建客户端连接对象时,创建监听线程;其中,所述客户端连接对象用于执行业务逻辑线程;所述业务逻辑线程与所述监听线程相互独立。
在一可选实施例中,所述创建监听线程之前,还包括:
将预设的标志位设置为确定标志位,其中,所述确定标志位用于指示进行所述监听线程的创建。
在一可选实施例中,所述创建监听线程之前,还包括:
获取连接信息,所述连接信息至少包括:所述第一集群的连接地址,第二集群的连接地址,所述监听周期;其中,所述第二集群为变换前的所述DNS指向的集群;
所述第一集群的连接地址与所述第二集群的连接地址至少用于判断所述DNS是否发生变换。
在一可选实施例中,所述连接信息用于指示根据所述第二集群的连接地址,将所述第二集群创建为所述客户端连接对象。
在一可选实施例中,所述连接信息用于指示根据所述监听周期创建监听线程,其中,所述监听线程用于执行以下操作:
按照所述监听周期监听DNS是否发生变换。
在一可选实施例中,所述连接信息还用于指示根据第一集群的连接地址,将所述第一集群创建为备选集群;所述按照所述监听周期监听DNS是否发生变换,还包括:
在监听到所述DNS指向的集群为所述第一集群的情形下,重启客户端,以令所述客户端连接至所述第一集群。
在一可选实施例中,所述方法还包括:在未监听到所述DNS发生变换的情形下,重复执行以下操作:
按照预设的所述监听周期继续监听所述DNS是否发生变换。
根据本发明的另一个实施例,还提供了一种多集群切换装置,包括:
监听模块,用于按照预设的监听周期监听域名服务协议DNS是否发生变换;
判断模块,用于在监听到所述DNS发生变换的情形下,重启客户端,以令所述客户端连接至变换后的所述DNS指向的第一集群。
在一可选实施例中,所述判断模块还用于:
在未监听到所述DNS发生变换的情形下,重复执行以下操作:
按照预设的所述监听周期继续监听所述DNS是否发生变换。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述计算机可读的存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,由于可以按照预设的监听周期监听域名服务协议DNS是否发生变换;在监听到所述DNS发生变换的情形下,重启客户端,以令所述客户端连接至变换后的所述DNS指向的第一集群。因此,本发明可以相关技术中,ZooKeeper的DNS发生切换后,客户端无法及时与新的ZooKeeper集群建立连接的问题,以达到改善用户体验的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例提供的多集群切换方法的应用环境示意图;
图2是根据本发明实施例提供的多集群切换方法的移动设备的硬件结构框图;
图3是根据本发明实施例提供的多集群切换方法的流程图;
图4是根据本发明实施例提供的业务逻辑线程与监听线程的流程图;
图5是根据本发明实施例的多集群切换装置的结构框图(一);
图6是根据本发明实施例的多集群切换装置的结构框图(二)。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为进一步说明本发明实施例中的多集群切换方法及装置,以下对本发明实施例中的多集群切换方法及装置的应用场景进行说明:
本发明实施例中的多集群切换方法可适用于至少两个ZooKeeper集群以及用户设备,图1是根据本发明实施例提供的多集群切换方法的应用环境示意图,如图1所示,ZooKeeper集群01位于核心机房,ZooKeeper集群02位于备用机房。初始状态下,用户设备03,自身注册到ZooKeeper集群01,以创建一个ZooKeeper集群01对应的客户端对象,该客户端对象会和作为服务端的ZooKeeper集群01保持一个通过心跳链接维护的长连接,进而在后续过程中,通过上述长连接以令用户设备03从ZooKeeper集群01获取信息。本发明实施例中的多集群切换方法即可在ZooKeeper集群发生DNS切换的情形下,主动建立用户设备03与ZooKeeper集群02之间的连接。
本发明实施例中的用户设备可以是移动设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备、智能家居设备、物联网设备等。以移动设备为例进行说明,图2是根据本发明实施例提供的多集群切换方法的移动设备的硬件结构框图,如图2所示,移动终端可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的多集群切换方法对应的计算机程序程序指令/模块,处理器102通过运行存储在存储器104内的计算机程序软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述多集群切换方法方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述网络在一示例中可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
上述ZooKeeper的客户端对象可以是基于Curator框架的ZooKeeper的客户端,Curator框架在ZooKeeper原生的API接口上进行了包装,以解决了ZooKeeper客户端相关底层功能的开发与实现,进而为ZooKeeper各种应用场景,例如,分布式锁服务、集群领导选举、共享计数器、缓存机制、分布式队列等的抽象封装。
以下对于本发明实施例中的多集群切换方法及装置进行具体说明:
实施例1
本实施例提供了一种多集群切换方法,图3是根据本发明实施例提供的多集群切换方法的流程图,如图3所示,本实施例中的多集群切换方法包括:
S102,按照预设的监听周期监听DNS是否发生变换;
S104,在监听到DNS发生变换的情形下,重启客户端,以令客户端连接至变换后的DNS指向的第一集群。
需要进一步说明的是,上述步骤S102与步骤S104的执行主体可以是客户端,也可以是用于对客户端进行管理的管理主体,本发明对此不做限定。上述步骤S102中,可通过监听DNS指向的集群的地址的方式,以监听DNS是否发生变换;在一示例中,在监听到DNS指向的集群的地址与之前的集群相同的情形下,则说明客户端的DNS所指向的集群未发生变化;在另一示例中,在监听到DNS指向的集群的地址与之前的集群不同的情形下,即可判断为DNS发生变换,在该示例下,即可通过重启客户端的方式,以令客户端可在重启后自动根据DNS指向的集群的地址与第一集群之间建立连接。
需要进一步说明的是,本实施例中的多集群切换方法可适用于ZooKeeper集群,也可适用于其它机制类似的于ZooKeeper集群的集群服务之间的切换,例如,Solr集群、Redis集群等,本发明对此不作限定。相应的,本实施例中的客户端可以为ZooKeeper集群的客户端,如Curator等,也可以指示其它机制类似的于ZooKeeper集群的客户端。
通过本实施例中的多集群切换方法,由于可以按照预设的监听周期监听域名服务协议DNS是否发生变换;在监听到所述DNS发生变换的情形下,重启客户端,以令所述客户端连接至变换后的所述DNS指向的第一集群。因此,本实施例中的多集群切换方法可以相关技术中,ZooKeeper的DNS发生切换后,客户端无法及时与新的ZooKeeper集群建立连接的问题,以达到改善用户体验的效果。
具体而言,本实施例中的多集群切换方法应用于多集群的构架下,可主动监听DNS是否发生变换,进而令客户端可及时获知DNS发生切换。在DNS发生变化的情形下,本实施例无需重启网关,而可通过重启客户端的方式以令客户端与原先连接的ZooKeeper集群断开,并与新的ZooKeeper集群建立连接。因此,本实施例中的多集群切换方法在DNS发生切换后,可令客户端在不影响用户体验(用户不会因网关重启而下线)的基础上及时与新的ZooKeeper集群建立连接。
在一可选实施例中,上述步骤S102中,监听DNS是否发生变换之前,还包括:
创建监听线程,其中,监听线程用于执行以下操作:
按照预设的周期监听DNS是否发生变换;在监听到DNS发生变换的情形下,重启客户端,以令客户端连接至变换后的DNS指向的第一集群。
需要进一步说明的是,上述可选实施例中,步骤S102中对DNS是否发生变换的监听于监听线程中执行。监听线程是预先创建的,在一可选实施例中,上述创建监听线程,包括:
在创建客户端连接对象时,创建监听线程;其中,客户端连接对象用于执行业务逻辑线程;业务逻辑线程与监听线程相互独立。
需要进一步说明的是,上述可选实施例中,以ZooKeeper集群为例,客户端连接对象的创建即用户设备自身注册到某ZooKeeper集群(例如,本实施例中的第二集群)时,所创建的该ZooKeeper集群对应的客户端连接对象;通过客户端连接对象,用户设备即可从注册的ZooKeeper集群获取消息。上述可选实施例中,业务逻辑线程即包括上述用户设备从注册的ZooKeeper集群获取消息的过程。
上述业务逻辑线程即客户端与服务端之间执行业务逻辑的主线程,上述监听线程即执行本实施例中的DNS的监听的线程。本实施例中的监听线程与上述业务逻辑线程相互并行,即本实施例中对DNS是否发声变化的监听,以及在监听到DNS发生变换的情形下重启客户端,以令客户端连接至变换后的DNS指向的第一集群的相关操作,独立于用户设备从集群获取消息等业务逻辑的过程执行。
以此,通过上述可选实施例中的技术方案,可令客户端在不影响业务逻辑执行的情形下,实现对DNS是否发生变换的监听,进而可令本实施例中的多集群切换方法在实现过程中不会因监听线程的设立,或监听DNS是否发生变换的操作而导致终端与服务器之间本身的信息传输受到影响。
图4是根据本发明实施例提供的业务逻辑线程与监听线程的流程图,上述业务逻辑线程与监听线程的执行流程如图4所示。如图4所示,在监听线程进行创建前,还可进一步设置标志位以及输入相关参数等,以下通过可选实施例的方式进行说明:
在一可选实施例中,上述创建监听线程之前,还包括:
将预设的标志位设置为确定标志位,其中,确定标志位用于指示进行监听线程的创建。
需要进一步说明的是,上述可选实施例中的预设的标志位即为图4所示流程中的flag位,上述确定标志位可以用ture进行标识。在上述可选实施例中将预设的标志位设置为确定标志位后,即进行监听线程的创建。
在一可选实施例中,上述创建监听线程之前,还包括:
获取连接信息,连接信息至少包括:第一集群的连接地址,第二集群的连接地址,监听周期;其中,第二集群为变换前的DNS指向的集群;
第一集群的连接地址与第二集群的连接地址至少用于判断DNS是否发生变换。
需要进一步说明的是,上述可选实施例中,连接信息即为图4所示流程中的连接参数,该连接参数可以在创建客户端连接对象时进行输入,以指示主备ZooKeeper集群的连接地址(即本实施例中的第一集群的连接地址,第二集群的连接地址)、重连策略、以及DNS监听过程中的监听周期。在输入上述主备ZooKeeper集群的连接地址的情形下,即可以此判断DNS是否发生改变。
上述可选实施例中,上述第二集群为核心机房部署的集群,上述第一集群为备用机房部署的集群,常规状态下,第二集群保持为Active状态,第一集群为Standby状态,以作为主备模式存在;此时,核心机房与备用机房下连接的相应用户设备的接入网关都从第二集群获取消息以及读取数据。该情形下,不论是用户设备自身注册到第二集群,亦或从第二集群获取信息,均会创建一个客户端对象。上述客户端对象会和作为服务端的第二集群保持一个通过心跳链接维护的长连接,之后的一切增删改查操作都基于这个长连接。
如果处于Active状态的第二集群存在整体宕机,或者网络波动等情形,为保证用户的指令可以正常下发,需要修改客户端连接对象的DNS,以令DNS指向处于Standby状态下的第一集群。
由于上述DNS发生切换后,用户设备的接入网关和核心机房之间的心跳链接并没有断开,因此,用户设备所访问的仍然是第二集群的服务。在上述情形下,通过监听线程中监听DNS指向的集群对象,即可判定DNS是否发生变换。具体而言,当监听到DNS指向第一集群,则可判断DNS发声变换,则可通过重启客户端的操作,以令客户端重启过程中,根据DNS所指向的集群,即第一集群重新连接心跳链接,进而令用户设备后续从第一集群获取消息以及读取数据。
在一可选实施例中,上述连接信息用于指示根据第二集群的连接地址,将第二集群创建为客户端连接对象。
需要进一步说明的是,第一集群的连接地址与第二集群的连接地址中可通过携带有用于指示核心/备用机房的标识,也可通过携带有用于指示优先级的标识,进而令第一集群的连接地址即指示第一集群对应备用机房的集群,第二集群的连接地址即指示第二集群对应核心机房的集群。以此,在客户端连接对象创建过程中,即可选择核心机房的第一集群优先作为客户端连接对象。
在一可选实施例中,上述连接信息用于指示根据监听周期创建监听线程,其中,监听线程用于执行以下操作:
按照监听周期监听DNS是否发生变换。
在一可选实施例中,上述连接信息还用于指示根据第一集群的连接地址,将第一集群创建为备选集群;上述按照监听周期监听DNS是否发生变换,还包括:
在监听到DNS指向的集群为第一集群的情形下,重启客户端,以令客户端连接至第一集群。
需要进一步说明的是,上述监听DNS是否发生变换,可以是通过监听DNS指向的是否保持为第二集群的判断方式,也可以是通过监听DNS指向的是否变换为第一集群的判断方式。上述可选实施例中,通过连接信息中携带的第一集群的连接地址,则可直接通过监听DNS指向的是否变换为第一集群的判断方式进行判断,以此,即可在DNS发生变换时,直接在重启客户端的过程中,根据第一集群的连接地址,将第一集群创建为客户端连接对象。
在一可选实施例中,本实施例中的多集群切换方法还包括:
在未监听到DNS发生变换的情形下,重复执行以下操作:
按照预设的监听周期继续监听DNS是否发生变换。
需要进一步说明的是,通过上述可选实施例中的技术效果,即可令用户设备始终保持对DNS是否发生变换的监听,进而确保用户设备与相应的ZooKeeper集群之间的连接稳定性。
以下通过一示例性实施例,进一步说明本实施例中的多集群切换方法:
S1,用户设备输入连接信息,以创建客户端连接对象,客户端连接对象用于执行业务逻辑线程。
连接信息中包括第一ZooKeeper集群的连接地址,第二ZooKeeper集群的连接地址,监听周期,以及重连策略等。上述第一ZooKeeper集群部署于核心机房,上述第二ZooKeeper集群部署于备用机房,常规状态下,第一ZooKeeper集群保持为Active状态,第二ZooKeeper集群为Standby状态,以作为主备模式存在。
上述连接信息中的重连策略即指示,常规状态下根据第一ZooKeeper集群的连接地址连接至第一ZooKeeper集群,在第一ZooKeeper集群无法正常工作的状态下,切换连接至第二ZooKeeper集群。以此,用户设备则在创建客户端连接对象后,根据第一ZooKeeper集群的连接地址注册至第一ZooKeeper集群,以令客户端与第一ZooKeeper集群之间保持一个通过心跳链接维护的长连接,进而令客户端通过上述长连接执行业务逻辑线程。此时,客户端的DNS指向第一ZooKeeper集群。
S2,用户设备创建客户端连接对象的同时,将预设的标志位设置为确定标志位,以创建监听线程。监听线程内,客户端按照监听周期监听DNS是否发生变换。
S3,用户设备使用过程中,第一ZooKeeper集群出现整体宕机,或网络波动等情形,导致第一ZooKeeper集群无法有效向用户设备传输消息或数据。此时,客户端修改DNS,以令DNS指向处于Standby状态下的备用机房中的第二ZooKeeper集群。
S4,监听线程内,在某一监听周期内客户端监听至DNS指向的是第二ZooKeeper集群,则判定其发生变化。此时,重启客户端,以令客户端连接至变换后的DNS指向的第二ZooKeeper集群。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
本实施例提供的一种多集群切换装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例提供的多集群切换装置的结构框图(一),如图5所示,本实施例中的多集群切换装置包括:
监听模块202,用于按照预设的监听周期监听域名服务协议DNS是否发生变换;
判断模块204,用于在监听到DNS发生变换的情形下,重启客户端,以令客户端连接至变换后的DNS指向的第一集群。
需要进一步说明的是,本实施例中的多集群切换装置的其余可选实施例与技术效果均与实施例1中记载的多集群切换方法相对应,故在此不再赘述。
在一可选实施例中,上述监听模块202中,监听DNS是否发生变换之前,还包括:
创建监听线程,其中,监听线程用于执行以下操作:
按照预设的周期监听DNS是否发生变换;在监听到DNS发生变换的情形下,重启客户端,以令客户端连接至变换后的DNS指向的第一集群。
在一可选实施例中,图6是根据本发明实施例提供的多集群切换装置的结构框图(二),如图6所示,本实施例中还包括:
业务逻辑模块206,用于创建客户端连接对象,同时创建监听线程;其中,客户端连接对象用于执行业务逻辑线程;业务逻辑线程与监听线程相互独立。
在一可选实施例中,上述业务逻辑模块206创建监听线程之前,还包括:
将预设的标志位设置为确定标志位,其中,确定标志位用于指示进行监听线程的创建。
在一可选实施例中,上述业务逻辑模块206创建监听线程之前,还包括:
获取连接信息,连接信息至少包括:第一集群的连接地址,第二集群的连接地址,监听周期;其中,第二集群为变换前的DNS指向的集群;
第一集群的连接地址与第二集群的连接地址至少用于判断DNS是否发生变换。
在一可选实施例中,上述连接信息用于指示根据第二集群的连接地址,将第二集群创建为客户端连接对象。
在一可选实施例中,上述连接信息用于指示根据监听周期创建监听线程,其中,监听线程用于执行以下操作:
按照监听周期监听DNS是否发生变换。
在一可选实施例中,上述连接信息还用于指示根据第一集群的连接地址,将第一集群创建为备选集群;上述按照监听周期监听DNS是否发生变换,还包括:
在监听到DNS指向的集群为第一集群的情形下,重启客户端,以令客户端连接至第一集群。
在一可选实施例中,上述判断模块204还用于:在未监听到DNS发生变换的情形下,重复执行以下操作:
按照预设的监听周期继续监听DNS是否发生变换。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行上述实施例中的计算机程序。
可选地,在本实施例中,上述计算机可读的存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行上述实施例中的步骤。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种多集群切换方法,其特征在于,包括:
获取连接信息,所述连接信息至少包括:作为服务端的第一集群的连接地址,作为服务端的第二集群的连接地址,重连策略、以及DNS监听过程中的监听周期;其中,所述第二集群为变换前的DNS指向的集群,所述第二集群为核心机房部署的集群,且所述第二集群常规状态下作为主模式运行业务线程,所述第一集群为备用机房部署的集群,且常规状态下作为备用模式运行业务线程,所述第一集群的连接地址与所述第二集群的连接地址中携带有用于指示核心机房的第一标识、用于指示备用机房的第二标识、用于指示优先级的第三标识,所述第三标识用于选择对应机房的集群作为客户端连接对象,所述第一集群的连接地址与所述第二集群的连接地址至少用于判断所述DNS是否发生变换,所述重连策略用于指示常规状态下根据所述第二集群的连接地址连接至所述第二集群,在所述第二集群无法正常工作的状态下,切换连接至所述第一集群;
创建监听线程,包括:在根据所述第二集群的连接地址,将所述第二集群创建为用于执行业务逻辑线程的客户端连接对象时,输入所述连接信息,所述客户端连接对象与所述第二集群建立心跳链接维护的长连接,并根据所述监听周期创建监听线程,所述业务逻辑线程与所述监听线程相互独立,其中,所述业务逻辑线程包括通过所述客户端连接对象从所述第二集群获取所述连接信息的过程,所述监听线程用于执行以下操作:
按照预设的监听周期监听域名服务协议DNS是否发生变换;
在监听到所述DNS发生变换的情形下,重启客户端,并直接在重启所述客户端的过程中,根据所述第一集群的连接地址,将所述第一集群创建为所述客户端连接对象,重启所述客户端后直接根据变换后的所述DNS指向的所述第一集群的连接地址连接至所述第一集群,所述第一集群重新连接所述心跳链接;在监听到DNS指向的集群地址与之前的集群地址相同的情形下,确定DNS所指向的集群未发生变化。
2.根据权利要求1所述的方法,其特征在于,所述创建监听线程之前,还包括:
将预设的标志位设置为确定标志位,其中,所述确定标志位用于指示进行所述监听线程的创建。
3.根据权利要求1所述的方法,其特征在于,所述连接信息还用于指示根据第一集群的连接地址,将所述第一集群创建为备选集群;所述按照预设的监听周期监听域名服务协议DNS是否发生变换,还包括:
在监听到所述DNS指向的集群为所述第一集群的情形下,重启客户端,以令所述客户端可在重启后自动根据DNS指向的集群地址连接至所述第一集群。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在未监听到所述DNS发生变换的情形下,重复执行以下操作:
按照预设的所述监听周期继续监听所述DNS是否发生变换。
5.一种多集群切换装置,其特征在于,包括:
业务逻辑模块,用于获取连接信息,所述连接信息至少包括:作为服务端的第一集群的连接地址,作为服务端的第二集群的连接地址,重连策略、以及DNS监听过程中的监听周期;其中,所述第二集群为变换前的所述DNS指向的集群,所述第二集群为核心机房部署的集群,且所述第二集群常规状态下作为主模式运行业务线程,所述第一集群为备用机房部署的集群,且常规状态下作为备用模式运行业务线程,所述第一集群的连接地址与所述第二集群的连接地址中携带有用于指示核心机房的第一标识、用于指示备用机房的第二标识、用于指示优先级的第三标识,所述第三标识用于选择对应机房的集群作为客户端连接对象,所述第一集群的连接地址与所述第二集群的连接地址至少用于判断所述DNS是否发生变换;所述重连策略用于指示常规状态下根据所述第二集群的连接地址连接至所述第二集群,在所述第二集群无法正常工作的状态下,切换连接至所述第一集群;
所述业务逻辑模块,还用于创建监听线程,包括:在根据所述第二集群的连接地址,将所述第二集群创建为用于执行业务逻辑线程的客户端连接对象时,输入所述连接信息,所述客户端连接对象与所述第二集群建立心跳链接维护的长连接,并根据所述监听周期创建监听线程,其中,所述业务逻辑线程包括通过所述客户端连接对象从所述第二集群获取所述连接信息的过程,所述客户端连接对象用于执行业务逻辑线程;所述业务逻辑线程与所述监听线程相互独立;
监听模块,用于按照预设的监听周期监听域名服务协议DNS是否发生变换;
判断模块,用于在监听到所述DNS发生变换的情形下,重启客户端,并直接在重启所述客户端的过程中,根据所述第一集群的连接地址,将所述第一集群创建为所述客户端连接对象,重启所述客户端后直接根据变换后的所述DNS指向的所述第一集群的连接地址连接至所述第一集群,所述第一集群重新连接所述心跳链接;在监听到DNS指向的集群地址与之前的集群地址相同的情形下,确定DNS所指向的集群未发生变化。
6.根据权利要求5所述的装置,其特征在于,所述判断模块还用于:
在未监听到所述DNS发生变换的情形下,重复执行以下操作:
按照预设的所述监听周期继续监听所述DNS是否发生变换。
7.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至4任一项中所述的方法。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至4任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010648579.8A CN111901395B (zh) | 2020-07-07 | 2020-07-07 | 多集群切换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010648579.8A CN111901395B (zh) | 2020-07-07 | 2020-07-07 | 多集群切换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111901395A CN111901395A (zh) | 2020-11-06 |
CN111901395B true CN111901395B (zh) | 2024-03-22 |
Family
ID=73193045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010648579.8A Active CN111901395B (zh) | 2020-07-07 | 2020-07-07 | 多集群切换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901395B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113765690A (zh) * | 2021-01-07 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 集群切换方法、系统、装置、终端、服务器及存储介质 |
CN113079192B (zh) * | 2021-02-08 | 2021-12-31 | 马上消费金融股份有限公司 | 信息处理方法、装置、设备和可读存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713586A (zh) * | 2004-06-24 | 2005-12-28 | 中兴通讯股份有限公司 | 一种实现虚拟集群冗余的方法 |
JP2009181597A (ja) * | 2009-05-21 | 2009-08-13 | Hitachi Ltd | クラスタ構成コンピュータシステムの排他制御方法 |
CN106375342A (zh) * | 2016-10-21 | 2017-02-01 | 用友网络科技股份有限公司 | 一种基于zookeeper技术的系统集群方法及系统 |
CN106888127A (zh) * | 2017-03-30 | 2017-06-23 | 新华三技术有限公司 | 一种避免集群中ip地址冲突的方法及装置 |
CN108011929A (zh) * | 2017-11-14 | 2018-05-08 | 平安科技(深圳)有限公司 | 数据请求处理方法、装置、计算机设备和存储介质 |
CN108206768A (zh) * | 2016-12-20 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 集群监测和切换方法及装置 |
CN108351823A (zh) * | 2015-10-22 | 2018-07-31 | Netapp股份有限公司 | 实现自动切换 |
CN109245908A (zh) * | 2017-07-10 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 一种主从集群切换的方法和装置 |
CN109842686A (zh) * | 2019-03-05 | 2019-06-04 | 国家电网有限公司信息通信分公司 | 一种实现跨区域集群调度的负载均衡系统 |
CN110290163A (zh) * | 2018-08-28 | 2019-09-27 | 新华三技术有限公司 | 一种数据处理方法及装置 |
CN111314500A (zh) * | 2020-02-19 | 2020-06-19 | 深圳前海微众银行股份有限公司 | 一种确定访问地址的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1323040A4 (en) * | 2000-09-08 | 2005-08-03 | Goahead Software Inc | SYSTEM AND METHOD FOR MANAGING CLUSTERS WITH MULTIPLE NODES |
CN103812675A (zh) * | 2012-11-08 | 2014-05-21 | 中兴通讯股份有限公司 | 一种实现业务交付平台异地容灾切换的方法和系统 |
CN107819605A (zh) * | 2016-09-14 | 2018-03-20 | 北京百度网讯科技有限公司 | 用于在服务器集群中切换服务器的方法和装置 |
-
2020
- 2020-07-07 CN CN202010648579.8A patent/CN111901395B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713586A (zh) * | 2004-06-24 | 2005-12-28 | 中兴通讯股份有限公司 | 一种实现虚拟集群冗余的方法 |
JP2009181597A (ja) * | 2009-05-21 | 2009-08-13 | Hitachi Ltd | クラスタ構成コンピュータシステムの排他制御方法 |
CN108351823A (zh) * | 2015-10-22 | 2018-07-31 | Netapp股份有限公司 | 实现自动切换 |
CN106375342A (zh) * | 2016-10-21 | 2017-02-01 | 用友网络科技股份有限公司 | 一种基于zookeeper技术的系统集群方法及系统 |
CN108206768A (zh) * | 2016-12-20 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 集群监测和切换方法及装置 |
CN106888127A (zh) * | 2017-03-30 | 2017-06-23 | 新华三技术有限公司 | 一种避免集群中ip地址冲突的方法及装置 |
CN109245908A (zh) * | 2017-07-10 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 一种主从集群切换的方法和装置 |
CN108011929A (zh) * | 2017-11-14 | 2018-05-08 | 平安科技(深圳)有限公司 | 数据请求处理方法、装置、计算机设备和存储介质 |
CN110290163A (zh) * | 2018-08-28 | 2019-09-27 | 新华三技术有限公司 | 一种数据处理方法及装置 |
CN109842686A (zh) * | 2019-03-05 | 2019-06-04 | 国家电网有限公司信息通信分公司 | 一种实现跨区域集群调度的负载均衡系统 |
CN111314500A (zh) * | 2020-02-19 | 2020-06-19 | 深圳前海微众银行股份有限公司 | 一种确定访问地址的方法及装置 |
Non-Patent Citations (7)
Title |
---|
【分布式】Zookeeper应用场景;leesf;《百度https://www.cnblogs.com/leesf456/p/6036548.html》;20161112;第2.2节 * |
Cluster supply chain switching system model and robust H∞ control strategy;Ling Hou等;《 MSIE 2011》;20110204;全文 * |
leesf.【分布式】Zookeeper应用场景.《百度https://www.cnblogs.com/leesf456/p/6036548.html》.2016, * |
企业邮件系统数据库切换故障分析与处理;周迪贵;《现代工业经济和信息化》;20190228;第9卷(第2期);全文 * |
可靠实现煤矿双机热备系统的方法;包建军;霍振龙;樊菁;;工矿自动化;20101110(11);全文 * |
吴健学等.《自动交换光网络》.2003,第290页. * |
郭达志等.《空间信息技术与资源环境保护》.2007,(第1版),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111901395A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109600768B (zh) | 网络切片的管理方法、设备及系统 | |
CN107465767B (zh) | 一种数据同步的方法和系统 | |
US20190179726A1 (en) | Monitoring method and apparatus of server, and storage medium | |
AU2021266341B2 (en) | Session processing method, device, and system | |
WO2016184175A1 (zh) | 数据库处理方法及装置 | |
KR20180120225A (ko) | 서비스 계층에서의 요청 처리 | |
CN111901395B (zh) | 多集群切换方法及装置 | |
CN109600760B (zh) | 网络管理方法、设备及系统 | |
CN104184756A (zh) | 一种数据同步方法、装置及系统 | |
CN105916100A (zh) | 代理心跳包的方法、装置和通信系统 | |
CN111064626B (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
CN111258627A (zh) | 一种接口文档生成方法和装置 | |
US11984974B2 (en) | Method and device for transmitting data, system, and storage medium | |
CN108632848B (zh) | 网络切片自优化协调方法及装置 | |
CN115004650B (zh) | 节点配置方法、装置、分布式系统及计算机可读介质 | |
CN106506717A (zh) | 一种自动发现方法及设备 | |
WO2019062634A1 (zh) | 通信方法及装置 | |
US11924070B2 (en) | Data processing method and device | |
CN115314540A (zh) | 一种请求应答超时的处理方法、装置、设备及介质 | |
CN113726581B (zh) | 一种恢复网络设备的出厂配置的方法、装置及网络设备 | |
US7349664B2 (en) | Communication system and method thereof | |
WO2024103943A1 (zh) | 一种业务处理方法、装置、存储介质及设备 | |
CN107465751B (zh) | 通信方法、装置、客户端及计算机存储介质 | |
CN110768855B (zh) | 链路化性能测试的方法和装置 | |
CN113094131A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |