CN115277375A - 一种主备服务器的切换方法、系统、设备及存储介质 - Google Patents
一种主备服务器的切换方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115277375A CN115277375A CN202211177979.0A CN202211177979A CN115277375A CN 115277375 A CN115277375 A CN 115277375A CN 202211177979 A CN202211177979 A CN 202211177979A CN 115277375 A CN115277375 A CN 115277375A
- Authority
- CN
- China
- Prior art keywords
- server
- long connection
- control protocol
- transmission control
- main
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 191
- 230000005540 biological transmission Effects 0.000 claims abstract description 94
- 230000002159 abnormal effect Effects 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 144
- 238000012544 monitoring process Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 27
- 238000012546 transfer Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 8
- 239000003550 marker Substances 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 9
- 230000006854 communication Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 14
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 239000000758 substrate Substances 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- 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
- 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
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种主备服务器的切换方法、系统、设备及存储介质,该方法包括:第一服务器初始化为主服务器,第二服务器初始化为备服务器;第二服务器基于传输控制协议建立从第一服务器至第二服务器的第一长连接;第一服务器与终端基于传输控制协议建立第二长连接,第二服务器与终端基于传输控制协议建立第三长连接;第二服务器将增量业务数据同步至第二数据库中,在第一长连接异常、且第三长连接正常,则确定第一服务器异常,从备服务器切换至主服务器,作为主服务器时,通知终端使用第三长连接与第二服务器执行业务操作。传输控制协议可检测网络链路状态是否出现故障,还检测主服务器中的主程序是否出现故障,提高了故障检测的准确率。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种主备服务器的切换方法、系统、设备及存储介质。
背景技术
随着互联网技术的发展,许多业务由服务器在后台提供服务,服务器因业务数据处理量愈发庞大,可能因硬件设备、操作系统、第三方软件等各种原因引起故障。
为在出现故障时正常提供服务,多使用两台服务器同时提供服务,一台服务器为主服务器、处于工作状态,另一台服务器为备服务器、处于监控准备状态,两台服务器之间同步保证业务数据,当主服务器发生故障时,切换至备服务器承担服务。
目前备服务器多使用ICMP(Internet Control Message Protocol,因特网控制报文协议)检测主服务器是否存在异常,但是,ICMP检测的是网络链路状态是否异常,而网络链路状态是主服务器异常的其中一种情况,在网络链路状态正常时,主服务器仍可能发生其他故障,此时并未切换备服务器,使得经常发生漏检的情况,导致对外提供的服务出现异常。
发明内容
本发明提供了一种主备服务器的切换方法、系统、设备及存储介质,以解决如果提高检测主服务器故障的成功率,以及时切换备服务器、保证正常对外提供发服务的问题。
根据本发明的一方面,提供了一种主备服务器的切换方法,包括:
第一服务器初始化为主服务器,第二服务器初始化为备服务器,所述第一服务器中配置有第一数据库,所述第二服务器中配置有第二数据库;
第二服务器基于传输控制协议建立从第一服务器至第二服务器的第一长连接;
第一服务器与终端基于传输控制协议建立第二长连接,第二服务器与终端基于传输控制协议建立第三长连接;
第一服务器在作为所述主服务器时,通知所述终端使用所述第二长连接与所述第一服务器执行业务操作,通过所述第一长连接将所述第一数据库中因所述业务操作发生变化的增量业务数据传输至第二服务器;
第二服务器在作为备服务器时,将所述增量业务数据同步至所述第二数据库中,在所述第一长连接异常、且所述第三长连接正常,则确定所述第一服务器异常,从所述备服务器切换至所述主服务器,作为所述主服务器时,通知所述终端使用所述第三长连接与所述第二服务器执行业务操作。
根据本发明的另一方面,提供了一种主备服务器的切换系统,其特征在于,所述系统包括第一服务器、第二服务器,所述第一服务器包括第一主程序,所述第二服务器包括第二主程序;
所述第一主程序,用于初始化为主服务器,所述第一服务器中配置有第一数据库;
所述第二主程序,用于初始化为备服务器,所述第二服务器中配置有第二数据库;
所述第一主程序,还用于基于传输控制协议建立从第一服务器至第二服务器的第一长连接;
所述第一主程序,还用于与终端基于传输控制协议建立第二长连接;
所述第二主程序,还用于与终端基于传输控制协议建立第三长连接;
所述第一主程序,还用于在作为所述主服务器时,通知所述终端使用所述第二长连接与所述第一服务器执行业务操作,通过所述第一长连接将所述第一数据库中因所述业务操作发生变化的增量业务数据传输至第二服务器;
所述第二主程序,还用于在作为备服务器时,将所述增量业务数据同步至所述第二数据库中,在所述第一长连接异常、且所述第三长连接正常,则确定所述第一服务器异常,从所述备服务器切换至所述主服务器,作为所述主服务器时,通知所述终端使用所述第三长连接与所述第二服务器执行业务操作。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的主备服务器的切换方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现本发明任一实施例所述的主备服务器的切换方法。
在本实施例中,第一服务器初始化为主服务器,第二服务器初始化为备服务器,第一服务器中配置有第一数据库,第二服务器中配置有第二数据库;第二服务器基于传输控制协议建立从第一服务器至第二服务器的第一长连接;第一服务器与终端基于传输控制协议建立第二长连接,第二服务器与终端基于传输控制协议建立第三长连接;第一服务器在作为主服务器时,通知终端使用第二长连接与第一服务器执行业务操作,通过第一长连接将第一数据库中因业务操作发生变化的增量业务数据传输至第二服务器;第二服务器在作为备服务器时,将增量业务数据同步至第二数据库中,在第一长连接异常、且第三长连接正常,则确定第一服务器异常,从备服务器切换至主服务器,作为主服务器时,通知终端使用第三长连接与第二服务器执行业务操作。主服务器与备服务器之间使用传输控制协议维持第一长连接,第一长连接除了承担同步增量业务数据的功能之外,还承担检测主服务器是否出现故障的功能,由于传输控制协议自身具有可靠性,其除了可以检测网络链路状态是否出现故障之外,还可以检测主服务器中的主程序是否出现故障,提高了故障检测的准确率,确保及时切换备服务器,可以做到7X24小时提供有效的服务,在切换备服务器时,通知终端一同切换至备服务器,保证业务连续、正常执行,不因切换备服务器而中断。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种主备服务器的切换方法的流程图;
图2是根据本发明实施例一提供的一种主备服务器间运行示意图;
图3是实现本发明实施例二提供的一种主备服务器连接关系示意图;
图4是根据本发明实施例二提供的一种主备服务器的切换方法的流程图;图5是根据本发明实施例三提供的一种主备服务器的切换系统的结构示意图;
图6是实现本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种主备服务器的切换方法的流程图,本实施例可适用于主服务器与备服务器之间根据TCP(Transmission Control Protocol,传输控制协议)长连接同步增量业务数据并检测主服务器是否出现故障,从而及时切换至备服务器的情况,该方法可以由主服务器、备服务器来执行,主服务器与备服务器均可采用硬件和/或软件的形式实现。如图1所示,该方法包括:
步骤101、第一服务器初始化为主服务器。
步骤102、第二服务器初始化为备服务器。
在本实施例中提供多台服务器,这些服务器中均配置有数据库,在启动时由主程序进行控制,多台服务器以主服务器、备服务器的分工模式构建稳健的业务系统,从而共同为用户提供各种服务,为便于区分,其中一台服务器称为第一服务器,第一服务器中配置的数据库称为第一数据库,第一服务器中的主程序称为第一主程序,在第一服务器作为主服务器时,第一数据库又称主数据库,另外一台服务器称为第二服务器,第二服务器中配置的数据库称为第二数据库,第二服务器中的主程序称为第二主程序,在第二服务器作为备服务器时,第二数据库又称备数据库。
从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统。从狭义上讲,服务器是专指某些高性能计算机,能通过网络,对外提供服务。根据体系结构不同,服务器可以分成两大重要的类别:IA架构服务器(Intel Architec-ture,英特尔处理器)和RISC架构服务器(Reduced Instruction Set Computing,精简指令集)。根据服务器所提供的服务,一般来说服务器具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:CPU(central processing unit,中央处理器)、硬盘、内存,系统、系统总线等。
主服务器是提供终端IP(Internet Protocol,网络互连协议)地址分配DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)的服务器,DHCP是一个局域网的网络协议指的是由服务器控制一段IP地址范围。客户端登录服务器是就可以自动获得服务器分配的IP地址和子网掩码。默认情况下DHCP作为服务组件不会被系统自动安装,管理员手动安装并进行配置。同一个子网内只允许存在一台主服务器。备服务器在同一个子网允许有多个服务器。
主服务器是有独立域名的服务器,而备服务器不存在独立域名,这是区分主备服务器的一种方式。数据库是存放数据的仓库,可以存放大量数据。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库是一个实体,它是能够合理保管数据的仓库,用户在该仓库中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
主程序,也称主函数,在许多命令式程序设计语言里,主函数(main function)是程序开始运行的地方。
在不同的业务场景中,产生不同类型的业务数据,因而数据库的类型也有所不同,其可以针对业务数据设置关系型数据库,如MySQL、SQL Server、Oracle等,也可以设置非关系型数据库,如MongoDB、CouchDB等,还可以设置键值数据库,如Dynamo、LevelDB等,本实施例对此不加以限制。
在不同的业务场景中,服务器之间的通信与交互,服务器与用户之间的通信与交互,除了P2P(peer-to-peer)协议等协议,大部分基于C/S(Client/Server,客户端/服务端)架构的通信场景,比如FTP(FileTransferProtocol,文件传输协议)、HTTP(Hyper TextTransfer Protocol,超文本传输协议)、DNS(Domain Name System,域名系统)等。
在这些业务场景中,服务器可为用户登录的客户端提供业务逻辑,例如,对视频数据进行转码的服务、对视频数据检测安防目标(如火宅、烟雾等)的服务,等等。
在这些业务场景中,数据库可以按照既定的数据结构来组织、存储和管理业务数据数据,为服务器对业务数据进行计算和处理提供基础。
在业务系统启动时,第一服务器可以启动第一主程序,第一主程序按照主服务器的规范进行初始化,使其身份初始化为主服务器,为用户提供业务逻辑,第二服务器可以启动第二主程序,第二主程序按照备服务器的规范进行初始化,使其身份初始化为备服务器,为用户提供业务逻辑的备份。
在本发明的一个实施例中,步骤101可以包括如下步骤:
步骤1011、对基于传输控制协议的套接字服务端创建第一实例。
在第一服务器(主服务器)中,第一主程序可对基于传输控制协议的套接字服务端TcpSocketServer创建实例,得到第一实例。
其中,传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的服务器通信网络的主服务器中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。TCP能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。传输控制协议是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
每台支持TCP的服务器都有一个TCP传输实体。TCP实体可以是一个库过程、一个用户进程,或者内核的一部分。
TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:基于流的方式、面向连接、可靠通信方式、在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销、通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。
TCP是因特网中的传输层协议,使用三次握手协议建立连接,当主动方发出连接请求后,等待对方回答,并最终对对方执行连接确认。三次握手完成后,第一服务器与第二服务器间成功地建立连接后即可开始传输数据。
此外,套接字Socket,用来描述IP(Internet Protocol,网际互连协议)地址和端口,是通信链的句柄,应用程序可以通过套接字想网络发送请求或者应答网络请求,套接字是支持TCP/IP协议的网络通信的基本操作单元,是对网络通信过程中端点的抽象表示,包含了进行网络通信所必须的五种信息:连接所使用的协议、本地主服务器的IP地址、本地远程的协议端口、远地主机的IP地址以及远地进程的协议端口。
一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交互数据的机制。套接字上联应用进程、下联网络协议栈,是服务器通过网络协议进行通信的接口,是服务器与网络协议栈进行交互的接口。
步骤1012、由第一实例创建基于传输控制协议的第一服务。
如图2所示,在第一服务器(主服务器)中,第一实例可创建基于TCP的服务,记为第一服务S1,第一服务S1用于作为服务端、与其他对象建立基于TCP的长连接。
步骤1013、启动基于文件传输协议的第一进程。
如图2所示,在第一服务器(主服务器)中,第一主程序可启动基于FTP的进程,记为第一进程FS1,第一进程FS1可用于作为FTP的服务端进行文件传输。其中,进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的调度的基本单元,是操作系统结构的基础。
线程是操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程中并行执行不同的任务。线程是独立调度和分配的节本单位。线程可以为操作系统内核调度的内核线程。同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间、文件描述符、信号处理等等。但同一进程中的多个线程有各自的调用栈、自己的寄存器环境、线程本地存储。
一个进程可以有多个线程,但每条线程并行执行不同的任务。
此外,FTP(FileTransferProtocol,文件传输协议)是用于在网络上进行文件传输的一套标准协议。终端在和服务器建立连接前基于TCP/IP经过一个“三次握手”的过程,保证终端与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠保证。
TCP/IP是指能够在多个不同网络间实现信息传输的协议簇。
FTP允许用户在TCP/IP 网络上的两台服务器之间进行文件传输。文件传输应用软件,通常也被叫做FTP 软件, 使用FTP 协议传输文件。用在一台服务器上运行FTP 软件客户端程序,在另一台服务器上运行FTP 服务端程序。
步骤1014、创建用于监测第一数据库的目录的第二进程。
如图2所示,在第一服务器(主服务器)中,第一主程序可调用自定义的脚本创建一个进程,记为第二进程F1,第二进程F1用于监测第一数据库的目录是否发生变化,因而第二进程F1也称为文件目录变动监测进程,文件目录变动监测进程主要用于监控指定目录是否有文件变动,若有则触发文件同步机制,则第二进程F1可以调用第一进程FS1通过Ftp服务端进行同步传输。FTP服务端是在互联网上提供文件存储和访问服务的服务端,它们依照FTP协议提供服务。
在本实施例中,第一进程FS1对第一数据库的目录进行监控,从而决定是否触发与备服务器之间的文件同步,有效提高文件同步的时效性,该进程使用到操作系统底层文件目录变动监测接口进行实时监控。
步骤1015、在预设的第一标志位中标记主服务器。
如图2所示,在第一服务器(主服务器)中,可以在第一数据库等位置预留一个标志位,记为第一标志位,第一标志位记录第一服务器在业务系统中的身份,第一服务器在完成初始化时,在该第一标志位中标记自己的身份为主服务器。
在本发明的一个实施例中,步骤102可以包括如下步骤:
步骤1021、对基于传输控制协议的套接字服务端创建第二实例。
在第二服务器(备服务器)中,第二主程序可对基于传输控制协议的套接字服务端TcpSocketServer创建实例,得到第二实例。
步骤1022、由第二实例创建基于传输控制协议的第二服务。
如图2所示,在第二服务器(备服务器)中,第二实例可创建基于TCP的服务,记为第二服务S2,第二服务S2用于作为服务端、与其他对象建立基于TCP的长连接。
步骤1023、启动基于文件传输协议的第三进程。
如图2所示,在第二服务器(备服务器)中,第二主程序可启动基于FTP的进程,记为第三进程FS2,第三进程FS2可用于作为FTP的客户端进行文件传输。
步骤1024、启动用于同步第一数据库与第二数据库的第四进程。
如图2所示,在第二服务器(备服务器)中,第二主程序可以启动一个进程,记为第四进程SD1,第四进程SD1用于在第一数据库与第二数据库之间同步文件,其同步的方向是将第一数据库中的文件同步至第二数据库。
进一步地,SD1中含有与输入输入(I/O,input/output)相关的线程,记为第一线程,以及,SD1中含有与日志相关的线程,记为第二线程。
步骤1025、创建用于监控所述第四进程的第五进程。
如图2所示,在第二服务器(备服务器)中,第二主程序可调用自定义的脚本创建一个进程,记为第五进程D1,第五进程D1用于监控第四进程SD1的运行状态,从而决定是否重启第四进程SD1。
进一步地,第五进程D1可用于监控第四进程SD1中与输入输出相关的第一线程的运行状态及与日志相关的第二线程的运行状态,从而决定是否重启第四进程SD1。
在本实施例中,第五进程D1执行主备服务器切换及主备服务器同步异常监控。在主备数据库初始化部署后通过第五进程D1根据主备服务器切换而动态自如切换主备数据库的模式,解决了因不可预测因素导致主备数据库的进程(如第四进程SD1)异常退出问题,保证了主备数据库之间的同步正常执行,使得主备数据库模式跟随当前主备服务器模式变化。
步骤1026、对基于传输控制协议的套接字客户端创建第三实例。
步骤1027、由第三实例基于传输控制协议创建第三服务。
如图2所示,在第二服务器(备服务器)中,第二主程序对基于TCP的套接字客户端TcpSocketClient创建第三实例,
第三实例可创建基于TCP服务,记为第三服务C1,第三服务S3用于作为客户端、与其他对象建立基于TCP的长连接。
步骤1027、在本地的第二标志位中标记备服务器。
如图2所示,在第二服务器(备服务器)中,可以在第二数据库等位置预留一个标志位,记为第二标志位,第二标志位记录第二服务器在业务系统中的身份,第二服务器在完成初始化时,在该第二标志位中标记自己的身份为备服务器。
步骤103、第二服务器基于传输控制协议建立从第一服务器至第二服务器的第一长连接。
第一服务器初始化为主服务器、第二服务器初始化备服务器后,第一服务器与第二服务器之间基于TCP创建从第一服务器到第二服务器之间的长连接,记为第一长连接。
主服务器与备服务器之间的数据是双向传输的,由当前主服务器与备服务器的标志位决定数据传输方向,即,传输方向为由主服务器到备服务器,在业务上终端不会同时操作主服务器数据库与备服务器数据库的数据,第一长连接用于接收当前主服务器同步转发的业务数据及判断主备服务器是否正常之一的条件。
在具体实现中,如图2所示,由第三服务C1与第一服务S1基于传输控制协议TCP建立从第一服务器至第二服务器的第一长连接C1_S1,以使第二服务器为传输控制协议TCP的客户端Client、第一服务器为传输控制协议TCP的服务端Server。
步骤104、第一服务器与终端基于传输控制协议建立第二长连接。
第一服务器初始化为主服务器后,第一服务器与终端之间基于TCP创建双向通信的长连接,记为第二长连接。
在具体实现中,如图2所示,由第一服务S1与终端基于传输控制协议TCP建立第二长连接,以使终端为传输控制协议TCP的客户端Client、第一服务器为传输控制协议TCP的服务端Server。
步骤105、第二服务器与终端基于传输控制协议建立第三长连接。
第二服务器初始化为备服务器后,第二服务器与终端之间基于TCP创建双向通信的长连接,记为第三长连接。
在具体实现中,如图2所示,由第二服务S2与终端基于传输控制协议TCP建立第二长连接,以使终端为传输控制协议TCP的客户端Client、第二服务器为传输控制协议TCP的服务端Server。
在建立第二长连接、第三长连接的过程中,终端分别与第一服务器、第二服务器存在三次握手的过程。
进一步而言,基于传输控制协议三次挥手包含:终端向第一服务器和/或第二服务器发送连接请求报文、第一服务器和/或第二服务器接收到来自终端发送的连接请求报文后,如果同意建立连接则向终端返回确认报文、终端接收到来自第一服务器和/或第二服务器的确认报文后向服务器发送建立连接报文。
此后,当终端向第一服务器和/或第二服务器传完数据后,向第一服务器和/或第二服务器发送释放报文旨在与第一服务器和/或第二服务器断开连接。
当第一服务器和/或第二服务器接收到来自终端发送的连接释放报文后,确保数据传送完后返回确认报文。
当第一服务器和/或第二服务器向终端发送连接释放报文旨在确认终端是否同意断开连接,若同意断开连接则断开第一服务器和/或第二服务器与终端之间的连接。
步骤106、第一服务器在作为主服务器时,通知终端使用第二长连接与第一服务器执行业务操作,通过第一长连接将第一数据库中因业务操作发生变化的增量业务数据传输至第二服务器。
第一服务器初始化为主服务器后,可以使用第二长连接向终端发送消息,通知终端其身份为主服务器、为终端提供服务,此时,终端记录主服务器为第一服务器,此后使用第二长连接与第一服务器进行通信、交互,从而协同执行业务操作。
在执行业务操作的过程中,第一服务器的第一数据库中的业务数据产生变化,此时,第一服务器可以查询因业务操作而发生变化的业务数据,记为增量业务数据,通过第一长连接将增量业务数据传输至第二服务器进行备份,实现文件同步。
在不同的业务场景中,终端有所不同,主服务器提供的服务有所不同,因而业务操作及其业务数据有所不同,本实施例对此不加以限制。
示例性地,如图3所示,在指挥调度的场景中,终端可以划分为输入设备、输出设备,其中,输入设备一般为信号源设备,如摄像头、移动终端、个人电脑等,输出设备可以为个人电脑、拼接器等,而拼接器连接由多个显示屏组成的屏幕,拼接器可以将多路视频数据传输至屏幕进行显示。
在本示例中,输入设备将原始的视频信号传输至主服务器,主服务器可对视频信号提供转码、添加字幕等服务,并输出处理之后的视频信号给输出设备,并将变化的业务数据(即增量业务数据,如原始的视频数据、转码的信息、字幕等)存储至主数据库中。
此时,主服务器将增量业务数据同步至备服务器。
在本发明的一个实施例中,步骤106可以包括如下步骤:
步骤1061、由第二进程调用预设的目录变动监测接口监测到第一数据库中的目录是否发生变化。
如图2所示,在第一服务器(主服务器)中,第二进程F1可以调用操作系统提供的底层的目录变动监测口(如FileWatcher)监测第一数据库的目录是否发送变化,这样子可以有效提高文件同步的时效性。
步骤1062、由第一进程通过第一长连接将第一数据库中因业务操作发生变化的增量业务数据传输至第三进程。
如图2所示,在第一服务器(主服务器)中,第二进程F1在监听到第一数据库的目录发生变化时,调用第一进程FS1,第一进程FS1通过第一长连接将第一数据库中因业务操作发生变化的增量业务数据传输至第三进程FS2。
步骤107、第二服务器在作为备服务器时,将增量业务数据同步至第二数据库中,在第一长连接异常、且第三长连接正常时,确定第一服务器异常,从备服务器切换至主服务器,作为主服务器时,通知终端使用第三长连接与第二服务器执行业务操作。
在第一服务器作为主服务器正常运行时,第二服务器在作为备服务器时,可以通过第一长连接接收到第一服务器同步的增量业务数据,此时,第二服务器可以将增量业务数据存储至第二数据库中,实现第一数据库与第二数据库之间的同步,以便第二服务器可以随时切换为主服务器、为终端提供继续提供服务。
第二服务器可以持续监测第一长连接的状态,从而监测第一服务器的运行状态,在第一长连接异常、且第三长连接正常时,确定第一服务器异常,无法为终端提供服务,此时,第二服务器可以按照主服务器的规范进行调整,将其身份从备服务器切换至主服务器,那么,第二服务器作为主服务器时,可以使用第三长连接向各个终端发送消息,通知终端其身份为主服务器、为终端提供服务,此时,终端记录主服务器为第二服务器,此后使用第三长连接与第二服务器进行通信、交互,从而协同执行业务操作。
其中,第一长连接异常可以包括通过第一长连接无法接收到第一服务器同步的增量业务数据、第一长连接断开,等等。
在某些情况中,主服务器的规范与备服务器的规范之间部分相同,即,主服务器的规范与备服务器的规范之间具有相同点、差异点,因而第二服务器可以按照相同点保留原有主服务器与备服务器均相同的功能,按照差异点关闭原有备服务器的功能并新增主服务器的功能。
在本发明的一个实施例中,步骤107可以包括如下步骤:
步骤1071、关闭第四进程与第五进程。
如图2所示,用于同步文件的第四进程SD1第五进程D1是备服务器独有的,因而在第二服务器切换至主服务器时,第二主程序可关闭第四进程SD1、第五进程D1。
步骤1072、创建用于监测第二数据库的目录的第六进程。
如图2所示,用于监测数据库的目录是否发生变化的进程是主服务器特有的,因而在第二服务器切换至主服务器时,第二主程序可创建用于监测第二数据库的目录的进程,记为第六进程F2。
步骤1073、在本地的第二标志位中将备服务器切换至主服务器。
如图2所示,在第二服务器中,除了关闭第四进程SD1、第五进程D1、创建第六进程F2之外,可以维持第二服务S2、第三进程FS2,第三服务C1可以关闭也可以不关闭,完成这些操作时,在第二服务器完成从备服务器切换至主服务器,此时,第二主程序在第二标志位中将自己的身份为从备服务器标记为主服务器。
在本实施例中,第一服务器初始化为主服务器,第二服务器初始化为备服务器,第一服务器中配置有第一数据库,第二服务器中配置有第二数据库;第二服务器基于传输控制协议建立从第一服务器至第二服务器的第一长连接;第一服务器与终端基于传输控制协议建立第二长连接,第二服务器与终端基于传输控制协议建立第三长连接;第一服务器在作为主服务器时,通知终端使用第二长连接与第一服务器执行业务操作,通过第一长连接将第一数据库中因业务操作发生变化的增量业务数据传输至第二服务器;第二服务器在作为备服务器时,将增量业务数据同步至第二数据库中,在第一长连接异常、且第三长连接正常,则确定第一服务器异常,从备服务器切换至主服务器,作为主服务器时,通知终端使用第三长连接与第二服务器执行业务操作。主服务器与备服务器之间使用传输控制协议维持第一长连接,第一长连接除了承担同步增量业务数据的功能之外,还承担检测主服务器是否出现故障的功能,由于传输控制协议自身具有可靠性,其除了可以检测网络链路状态是否出现故障之外,还可以检测主服务器中的主程序是否出现故障,提高了故障检测的准确率,确保及时切换备服务器,可以做到7X24小时提供有效的服务,在切换备服务器时,通知终端一同切换至备服务器,保证业务连续、正常执行,不因切换备服务器而中断。
实施例二
图4为本发明实施例二提供的一种主备服务器的切换方法的流程图,本实施例在实施例一的基础上第一服务器恢复时切换至备服务器的情况。如图4所示,该方法包括:
步骤401、第一服务器初始化为主服务器。
步骤402、第二服务器初始化为备服务器。
步骤403、第二服务器基于传输控制协议建立从第一服务器至第二服务器的第一长连接。
步骤404、第一服务器与终端基于传输控制协议建立第二长连接。
步骤405、第二服务器与终端基于传输控制协议建立第三长连接。
步骤406、第一服务器在作为主服务器时,通知终端使用第二长连接与第一服务器执行业务操作,通过第一长连接将第一数据库中因业务操作发生变化的增量业务数据传输至第二服务器。
步骤407、第二服务器在作为备服务器时,将增量业务数据同步至第二数据库中,在第一长连接异常、且第三长连接正常时,确定第一服务器异常,从备服务器切换至主服务器,作为主服务器时,通知终端使用第三长连接与第二服务器执行业务操作。
步骤408、第一服务器在恢复正常时,恢复与终端的第二长连接。
第一服务器在发生异常时,第一服务器与终端之间的第二长连接可能会断开,第一服务器触发保护机制,通过重启等方式排除异常,恢复正常状态,此时,可以读取在先的状态,其中,第一服务器可以与终端恢复第二长连接。
在具体实现中,如图2所示,由第一服务S1与终端基于传输控制协议TCP建立第二长连接,以使终端为传输控制协议TCP的客户端Client、第一服务器为传输控制协议TCP的服务端Server。
步骤409、第一服务器在检测到第二服务器为主服务器时,从主服务器切换至备服务器,第一服务器基于传输控制协议建立从第二服务器至第一服务器的第四长连接。
在本实施例中,第一服务器在恢复在先的状态时,检测自身的第一标志位为主服务器,在第一服务器发生异常期间,业务系统可能发生了主备服务器的切换,因此,为了保证业务系统的正常运行,第一服务器可以通过HTTP协议(Hyper Text Transfer Protocol,超文本阐述协议)向第二服务器发送检测请求。
第二服务器接收到检测请求时,查询自身的第二标志位,在第二标志位为主服务器时,将主服务器写入检测响应中,并将检测响应发送至第一服务器,第一服务器接收到检测响应时,解析检测响应得知第二服务器为主服务器,此时,第一服务器按照备服务器的规范进行调整,从主服务器切换至备服务器。
在某些情况中,主服务器的规范与备服务器的规范之间部分相同,即,主服务器的规范与备服务器的规范之间具有相同点、差异点,因而第一服务器可以按照相同点保留原有主服务器与备服务器均相同的功能,按照差异点关闭原有主服务器的功能并新备主服务器的功能。
在本发明的一个实施例中,步骤409可以包括如下步骤:
步骤4091、关闭用于监测第一数据库的目录的第二进程。
如图2所示,用于监测第一数据库的目录是否发生变化的进程是主服务器特有的,因而在第一服务器在切换至备服务器时,第一主程序可关闭用于监测第一数据库的目录的第二进程F1。
步骤4092、启动用于同步第一数据库与第二数据库的第七进程。
步骤4093、创建用于监控第七进程的第八进程。
如图2所示,用于同步数据库的进程及其监控的进程是备服务器特有的,因而在第一服务器在切换至备服务器时,第一主程序可启动用于同步第一数据库与第二数据库的进程,记为第七进程SD2,
以及,第一主程序创建用于监控第七进程SD2的进程,记为第八进程D2。
步骤4094、对基于传输控制协议的套接字客户端创建第四实例。
步骤4095、由第四实例创建基于传输控制协议的第四服务。
如图2所示,用于同步数据库并监控状态的长连接是备服务器特有的,因而在第一服务器在切换至备服务器时,第一主程序可对基于传输控制协议套接字客户端TcpSocketClient创建实例,记为第四实例,第四实例创建基于传输控制协议TCP的服务,记为第四服务C2。
步骤4095、在预设的第一标志位中将主服务器切换至备服务器。
如图2所示,在第一服务器中,除了关闭第一进程F1,创建第七进程SD2、第八进程D2、第四服务C2之外,可以维持第一服务S1、第二进程FS1,完成这些操作时,在第一服务器完成从主服务器切换至备服务器,此时,第一主程序在第一标志位中将自己的身份为从主服务器标记为备服务器。
第一服务器切换至备服务器、第二服务器切换至主服务器后,第一服务器与第二服务器之间之间基于TCP创建从第二服务器到第一服务器之间的长连接,记为第一长连接。
在具体实现中,如图2所示,由第四服务C2与第二服务S2基于传输控制协议TCP建立从第二服务器至第一服务器第四长连接C2_S2,以使第一服务器为传输控制协议TCP的客户端Client、第二服务器为传输控制协议TCP的服务端Server。
当第一服务器与第二服务器建立第四长连接C2_S2时,第一服务器可以接收到第二服务器同步的文件(即增量业务数据),实现第一数据库与第二数据库的同步,以及,第一服务器可以通过第四长连接监测第二服务器的运行状态,即监测第二服务器是否发生异常,以便在第二服务器发生异常时,及时进行主服务器与备服务器之间的切换。
实施例三
图5为本发明实施例三提供的一种主备服务器的切换系统的结构示意图,所述系统包括第一服务器510、第二服务器520,所述第一服务器510包括第一主程序511,所述第二服务器520包括第二主程序521;
所述第一主程序511,用于初始化为主服务器,所述第一服务器中配置有第一数据库;
所述第二主程序521,用于初始化为备服务器,所述第二服务器中配置有第二数据库;
所述第一主程序511,还用于基于传输控制协议建立从第一服务器至第二服务器的第一长连接;
所述第一主程序511,还用于与终端基于传输控制协议建立第二长连接;
所述第二主程序521,还用于与终端基于传输控制协议建立第三长连接;
所述第一主程序511,还用于在作为所述主服务器时,通知所述终端使用所述第二长连接与所述第一服务器执行业务操作,通过所述第一长连接将所述第一数据库中因所述业务操作发生变化的增量业务数据传输至第二服务器;
所述第二主程序521,还用于在作为备服务器时,将所述增量业务数据同步至所述第二数据库中,在所述第一长连接异常、且所述第三长连接正常时,确定所述第一服务器异常,从所述备服务器切换至所述主服务器,作为所述主服务器时,通知所述终端使用所述第三长连接与所述第二服务器执行业务操作。
本发明的一个实施例中,所述第一主程序511,还用于对基于传输控制协议的套接字服务端创建第一实例;
所述第一实例,用于创建基于传输控制协议的第一服务;
所述第一主程序511,还用于启动基于文件传输协议的第一进程;
所述第一主程序511,还用于创建用于监测所述第一数据库的目录的第二进程;
所述第一主程序511,还用于在预设的第一标志位中标记主服务器;
所述第二主程序521,用于对基于传输控制协议的套接字服务端创建第二实例;
所述第二实例,用于创建基于传输控制协议的第二服务;
所述第二主程序,还用于启动基于文件传输协议的第三进程;
所述第二主程序,还用于启动用于同步所述第一数据库与所述第二数据库的第四进程;
所述第二主程序,还用于创建用于监控所述第四进程的第五进程;
所述第二主程序,还用于对基于传输控制协议的套接字客户端创建第三实例;
所述第三实例,用于创建基于传输控制协议的第三服务;
所述第二主程序,还用于在本地的第二标志位中标记备服务器。
本发明的一个实施例中,
所述第三服务,用于与所述第一服务基于传输控制协议建立从第一服务器至第二服务器的第一长连接,以使所述第二服务器为传输控制协议的客户端、所述第一服务器为传输控制协议的服务端;
所述第一服务,用于与终端基于传输控制协议建立第二长连接,以使所述终端为传输控制协议的客户端、所述第一服务器为传输控制协议的服务端;
所述第二服务,用于与终端基于传输控制协议建立第二长连接,以使所述终端为传输控制协议的客户端、所述第二服务器为传输控制协议的服务端。
本发明的一个实施例中,
所述第二进程,用于调用预设的目录变动监测接口监测到所述第一数据库中的目录是否发生变化;
所述第一进程,用于通过所述第一长连接将所述第一数据库中因所述业务操作发生变化的增量业务数据传输至所述第三进程;
本发明的一个实施例中,
所述第三进程,用于接收所述第一进程传输的所述增量业务数据;
所述第四进程,用于将所述增量业务数据写入所述第二数据库;
所述第五进程,用于监控所述第四进程中与输入输出相关的第一线程、与日志相关的第二线程,在所述第一线程和/或所述第二线程异常时,终止所述第四进程并重启所述第四进程。
本发明一个实施例中,
所述第二主程序,还用于关闭所述第四进程与所述第五进程;
所述第二主程序,还还用于创建用于监测所述第二数据库的目录的第六进程;
所述第二主程序,还还用于在本地的第二标志位中将备服务器切换至主服务器。
本发明一个实施例中,
所述第一主程序,还用于在恢复正常时,恢复与所述终端的所述第二长连接;
所述第一主程序,还用于在检测到第二服务器为所述主服务器时,从所述主服务器切换至所述备服务器,基于传输控制协议建立从第二服务器至第一服务器的第四长连接。
本发明一个实施例中,
所述第一主程序,还用于关闭用于监测所述第一数据库的目录的第二进程;
所述第一主程序,还用于启动用于同步所述第一数据库与所述第二数据库的第七进程;
所述第一主程序,还用于创建用于监控所述第七进程的第八进程;
所述第一主程序,还用于对基于传输控制协议的套接字客户端创建第四实例;
所述第四实例,用于创建基于传输控制协议的第四服务;
所述第一主程序,还用于在预设的第一标志位中将主服务器切换至备服务器。
本发明一个实施例中
所述第四服务,用于与所述第二服务基于传输控制协议建立从第二服务器至第一服务器的第四长连接,以使所述第一服务器为传输控制协议的客户端、所述第二服务器为传输控制协议的服务端。
本发明实施例所提供的主备服务器的切换系统可执行本发明任意实施例所提供的主备服务器的切换方法,具备执行主备服务器的切换方法相应的功能模块和有益效果。
实施例四
图6示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如主备服务器的切换方法。
在一些实施例中,主备服务器的切换方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的主备服务器的切换方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行主备服务器切换的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
实施例五
本发明实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时实现如本发明任一实施例所提供的主备服务器的切换方法。
计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种主备服务器的切换方法,其特征在于,包括:
第一服务器初始化为主服务器,第二服务器初始化为备服务器,所述第一服务器中配置有第一数据库,所述第二服务器中配置有第二数据库;
第二服务器基于传输控制协议建立从第一服务器至第二服务器的第一长连接;
第一服务器与终端基于传输控制协议建立第二长连接,第二服务器与终端基于传输控制协议建立第三长连接;
第一服务器在作为所述主服务器时,通知所述终端使用所述第二长连接与所述第一服务器执行业务操作,通过所述第一长连接将所述第一数据库中因所述业务操作发生变化的增量业务数据传输至第二服务器;
第二服务器在作为备服务器时,将所述增量业务数据同步至所述第二数据库中,在所述第一长连接异常、且所述第三长连接正常时,确定所述第一服务器异常,从所述备服务器切换至所述主服务器,作为所述主服务器时,通知所述终端使用所述第三长连接与所述第二服务器执行业务操作。
2.根据权利要求1中所述的方法,其特征在于,
所述第一服务器初始化为主服务器,包括:
对基于传输控制协议的套接字服务端创建第一实例;
由所述第一实例创建基于传输控制协议的第一服务;
启动基于文件传输协议的第一进程;
创建用于监测所述第一数据库的目录的第二进程;
在预设的第一标志位中标记主服务器;
所述第二服务器初始化为备服务器,包括:
对基于传输控制协议的套接字服务端创建第二实例;
由所述第二实例创建基于传输控制协议的第二服务;
启动基于文件传输协议的第三进程;
启动用于同步所述第一数据库与所述第二数据库的第四进程;
创建用于监控所述第四进程的第五进程;
对基于传输控制协议的套接字客户端创建第三实例;
由所述第三实例创建基于传输控制协议的第三服务;
在本地的第二标志位中标记备服务器。
3.根据权利要求2中所述的方法,其特征在于,
所述第二服务器基于传输控制协议建立从第一服务器至第二服务器的第一长连接,包括:
由所述第三服务与所述第一服务基于传输控制协议建立从第一服务器至第二服务器的第一长连接,以使所述第二服务器为传输控制协议的客户端、所述第一服务器为传输控制协议的服务端;
所述第一服务器与终端基于传输控制协议建立第二长连接,包括:
由所述第一服务与终端基于传输控制协议建立第二长连接,以使所述终端为传输控制协议的客户端、所述第一服务器为传输控制协议的服务端;
所述第二服务器与终端基于传输控制协议建立第三长连接,包括:
由所述第二服务与终端基于传输控制协议建立第二长连接,以使所述终端为传输控制协议的客户端、所述第二服务器为传输控制协议的服务端。
4.根据权利要求2中所述的方法,其特征在于,
所述通过所述第一长连接将所述第一数据库中因所述业务操作发生变化的增量业务数据传输至第二服务器,包括:
由所述第二进程调用预设的目录变动监测接口监测到所述第一数据库中的目录是否发生变化;
由所述第一进程通过所述第一长连接将所述第一数据库中因所述业务操作发生变化的增量业务数据传输至所述第三进程;
所述将所述增量业务数据同步至所述第二数据库中,包括:
由所述第三进程接收所述第一进程传输的所述增量业务数据;
由所述第四进程将所述增量业务数据写入所述第二数据库;
由所述第五进程监控所述第四进程中与输入输出相关的第一线程、与日志相关的第二线程,在所述第一线程和/或所述第二线程异常时,终止所述第四进程并重启所述第四进程。
5.根据权利要求2中所述的方法,其特征在于,所述从所述备服务器切换至所述主服务器,包括:
关闭所述第四进程与所述第五进程;
创建用于监测所述第二数据库的目录的第六进程;
在本地的第二标志位中将备服务器切换至主服务器。
6.根据权利要求1-5中任一项所述的方法,其特征在于,还包括:
第一服务器在恢复正常时,恢复与所述终端的所述第二长连接;
第一服务器在检测到第二服务器为所述主服务器时,从所述主服务器切换至所述备服务器,基于传输控制协议建立从第二服务器至第一服务器的第四长连接。
7.根据权利要求6中所述的方法,其特征在于,所述第二服务器中具有由基于传输控制协议的套接字服务端的第二实例创建的第二服务;
所述从所述主服务器切换至所述备服务器,包括:
关闭用于监测所述第一数据库的目录的第二进程;
启动用于同步所述第一数据库与所述第二数据库的第七进程;
创建用于监控所述第七进程的第八进程;
对基于传输控制协议的套接字客户端创建第四实例;
由所述第四实例创建基于传输控制协议的第四服务;
在预设的第一标志位中将主服务器切换至备服务器;
所述第一服务器基于传输控制协议建立从第二服务器至第一服务器的第四长连接,包括:
由所述第四服务与所述第二服务基于传输控制协议建立从第二服务器至第一服务器的第四长连接,以使所述第一服务器为传输控制协议的客户端、所述第二服务器为传输控制协议的服务端。
8.一种主备服务器的切换系统,其特征在于,所述系统包括第一服务器、第二服务器,所述第一服务器包括第一主程序,所述第二服务器包括第二主程序;
所述第一主程序,用于初始化为主服务器,所述第一服务器中配置有第一数据库;
所述第二主程序,用于初始化为备服务器,所述第二服务器中配置有第二数据库;
所述第一主程序,还用于基于传输控制协议建立从第一服务器至第二服务器的第一长连接;
所述第一主程序,还用于与终端基于传输控制协议建立第二长连接;
所述第二主程序,还用于与终端基于传输控制协议建立第三长连接;
所述第一主程序,还用于在作为所述主服务器时,通知所述终端使用所述第二长连接与所述第一服务器执行业务操作,通过所述第一长连接将所述第一数据库中因所述业务操作发生变化的增量业务数据传输至第二服务器;
所述第二主程序,还用于在作为备服务器时,将所述增量业务数据同步至所述第二数据库中,在所述第一长连接异常、且所述第三长连接正常,则确定所述第一服务器异常,从所述备服务器切换至所述主服务器,作为所述主服务器时,通知所述终端使用所述第三长连接与所述第二服务器执行业务操作。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的主备服务器的切换方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现权利要求1-7中任一项所述的主备服务器的切换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211177979.0A CN115277375B (zh) | 2022-09-27 | 2022-09-27 | 一种主备服务器的切换方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211177979.0A CN115277375B (zh) | 2022-09-27 | 2022-09-27 | 一种主备服务器的切换方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115277375A true CN115277375A (zh) | 2022-11-01 |
CN115277375B CN115277375B (zh) | 2023-01-06 |
Family
ID=83756221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211177979.0A Active CN115277375B (zh) | 2022-09-27 | 2022-09-27 | 一种主备服务器的切换方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115277375B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150026237A1 (en) * | 2013-07-18 | 2015-01-22 | International Business Machines Corporation | Push notification via file sharing service synchronization |
US20150142981A1 (en) * | 2013-11-15 | 2015-05-21 | Microsoft Corporation | Switching of connection protocol |
CN111447094A (zh) * | 2020-03-27 | 2020-07-24 | 深圳融安网络科技有限公司 | 双机的主从切换方法、终端设备及计算机可读存储介质 |
CN112702206A (zh) * | 2020-12-25 | 2021-04-23 | 珠海金山网络游戏科技有限公司 | 一种主备集群部署方法及系统 |
CN113407383A (zh) * | 2021-06-30 | 2021-09-17 | 迈普通信技术股份有限公司 | 主备系统切换方法、装置、服务器及主备系统 |
-
2022
- 2022-09-27 CN CN202211177979.0A patent/CN115277375B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150026237A1 (en) * | 2013-07-18 | 2015-01-22 | International Business Machines Corporation | Push notification via file sharing service synchronization |
US20150142981A1 (en) * | 2013-11-15 | 2015-05-21 | Microsoft Corporation | Switching of connection protocol |
CN111447094A (zh) * | 2020-03-27 | 2020-07-24 | 深圳融安网络科技有限公司 | 双机的主从切换方法、终端设备及计算机可读存储介质 |
CN112702206A (zh) * | 2020-12-25 | 2021-04-23 | 珠海金山网络游戏科技有限公司 | 一种主备集群部署方法及系统 |
CN113407383A (zh) * | 2021-06-30 | 2021-09-17 | 迈普通信技术股份有限公司 | 主备系统切换方法、装置、服务器及主备系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115277375B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715411B1 (en) | Altering networking switch priority responsive to compute node fitness | |
WO2021121370A1 (zh) | 用于消息队列的消息丢失检测方法和装置 | |
US10693813B1 (en) | Enabling and disabling links of a networking switch responsive to compute node fitness | |
US7225356B2 (en) | System for managing operational failure occurrences in processing devices | |
WO2019061720A1 (zh) | 一种数据同步的方法和系统 | |
CN112448858B (zh) | 网络通信控制方法及装置、电子设备和可读存储介质 | |
US20120134299A1 (en) | Automated topology formation in dynamic distributed environments | |
CN100426751C (zh) | 保证集群系统中配置信息一致的方法 | |
US9992058B2 (en) | Redundant storage solution | |
CN102880475A (zh) | 计算机软件系统中基于云计算的实时事件处理系统及方法 | |
CN104935672A (zh) | 负载均衡服务高可用实现方法和设备 | |
CN105306605B (zh) | 一种双主机服务器系统 | |
CN111949444A (zh) | 一种基于分布式服务集群的数据备份与恢复系统及方法 | |
CN107682460B (zh) | 一种分布式存储集群数据通信方法及系统 | |
CN102523118A (zh) | 一种局域网内多套控制计算机构成的冗余控制系统与方法 | |
CN111865632B (zh) | 分布式数据存储集群的切换方法及切换指令发送方法和装置 | |
CN105933379A (zh) | 一种业务处理方法、设备及系统 | |
CN110109772A (zh) | 一种cpu的重启方法、通信设备及可读存储介质 | |
CN111770176A (zh) | 流量调度方法及装置 | |
CN112822039B (zh) | 双机热备系统主备模式切换的方法 | |
CN115550424B (zh) | 一种数据缓存方法、装置、设备及存储介质 | |
CN115277375B (zh) | 一种主备服务器的切换方法、系统、设备及存储介质 | |
CN108270593B (zh) | 一种双机热备份方法和系统 | |
US9703646B2 (en) | Centralized database system | |
CN111614702B (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: No. 56 Nanli East Road, Shiqi Town, Panyu District, Guangzhou City, Guangdong Province, 510000 Patentee after: Guangdong Baolun Electronics Co.,Ltd. Address before: 511400 No. 19, Chuangyuan Road, Zhongcun street, Panyu District, Guangzhou, Guangdong Patentee before: GUANGZHOU ITC ELECTRONIC TECHNOLOGY Co.,Ltd. |