CN106254236A - 一种基于tcp事件的多服务器主从机工作方法 - Google Patents
一种基于tcp事件的多服务器主从机工作方法 Download PDFInfo
- Publication number
- CN106254236A CN106254236A CN201610635917.8A CN201610635917A CN106254236A CN 106254236 A CN106254236 A CN 106254236A CN 201610635917 A CN201610635917 A CN 201610635917A CN 106254236 A CN106254236 A CN 106254236A
- Authority
- CN
- China
- Prior art keywords
- machine
- event
- main frame
- tcp
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Abstract
本发明提供了一种基于TCP事件的多服务器主从机工作方法。本方法在对性能效率及稳定性要求较高的系统中,布置两个及两个以上的服务器,各个服务器配置相同,增量数据同步,能够互相替代进行系统内的工作。同一时刻只有一个服务器作为主机(即后述的master),其余服务器则作为从机(即后述的slave),从机与主机增量数据同步,在主机无法正常工作时,系统选定优先级别最高的从机作为新的主机。本发明使用I/O多路复用模型epoll管理TCP事件,效率高、易于实现,且增量数据同步事件能够进行主机和从机之间的增量数据同步,满足服务器之间互相替代的要求。
Description
技术领域
本发明属于主从设备工作领域,尤其涉及到一种基于TCP事件的多服务器主从机工作方法。
背景技术
现在很多项目对系统稳定性及性能效率要求较高,在系统设置中,通常只设置一个服务器。一旦该服务器出现故障,由于无备用服务器,或者由于备用服务器数据不与原服务器同步,造成系统无法正常运行。即使想要实现增量数据同步的功能还需要其他多种工具配合,造成成本增加。
发明内容
为解决上述问题,本发明提供了一种基于TCP事件的多服务器主从机工作方法,包括如下步骤:
步骤一:预先建立一个系统,该系统包括若干台具有相同功能的服务器、若干具有通信功能的电子设备,由epoll对系统的TCP事件进行管理,并预先在每个服务器内定义三个TCP事件:检测从机事件、增量数据同步事件、检测主机事件。
所述检测从机事件用于主机定时监测各个从机是否在线,当从机在线时则与从机建立TCP异步非阻塞连接, 之后将该连接交给epoll管理。
所述增量数据同步事件用于主机将增量数据同步到在线的从机。
所述检测主机事件用于从机对主机在线状态进行定时监测。
步骤二:各个服务器启动,各个服务器具有优先级排序。
步骤三:将在线的、优先级最高的服务器作为主机,其余的服务器作为从机,所述主机与各个从机及各个具有通信功能的电子设备建立通信连接。
步骤四:主机运行检测从机事件,定时监控各个从机在线状态,当从机在线时,则启动增量数据同步事件,将主机与系统内其他具有通信功能的电子设备的通信数据增量同步到从机中。
从机运行检测主机事件,定时监控主机在线状态,如在线,则继续作为从机工作,不执行步骤五;如不在线,优先级别最高的从机跃迁为新的主机,并与其它从机建立起通信,将其它从机作为自己的从机,并执行步骤五。
步骤五:新的主机向系统内的具有通信功能的电子设备发布跃迁信号,表明自己的主机身份,并重置检测从机事件、增量数据同步事件、检测主机事件。
步骤六:循环执行步骤三-步骤五,直到系统停止工作。
进一步的,步骤四中,定时监测的具体实现方式是:利用rb_tree实现定时监控,系统将各个主机执行检测从机事件的事件及从机执行检测主机事件的时间信息注入到 rb_tree的各个节点,由epoll_wait的时间机制来遍历rb_tree,以定时执行监测。
进一步的,所述服务器具有两个。
进一步的,根据完成启动的时间先后对各个服务器设备进行优先级别从高到低的排序。
进一步的,检测从机事件的具体执行方法为:由主机发起与从机建立TCP异步非阻塞连接, 之后将连接交给epoll管理,若连接不成功或连接中断则epoll会感知到连接失败事件,这时主机就会判断从机为不在线状态,否则从机为在线状态。
进一步的,增量数据同步事件执行的具体流程为:主机发起与从机建立TCP异步非阻塞连接,并初始化与之对应的一个内存块,之后将连接交给epoll管理,epoll可感知该连接的可读事件,若此时内存块中有增量数据,则epoll会将数据异步的通过该连接同步到从机。
进一步的,检测主机事件执行的具体流程为:由从机发起与主机建立TCP异步非阻塞连接, 之后将连接交给epoll管理。若连接不成功或连接中断则epoll会感知到连接失败事件,这时从机就会判断主机为不在线状态,否则主机为在线状态。
进一步的,步骤四中,优先级别最高的从机跃迁为新的主机后,如果步骤三中作为主机的服务器恢复在线状态,该服务器作为从机作为与新的主机建立通信连接。
本发明的有益效果为:
1.使用I/O多路复用模型epoll管理TCP事件,效率高、易于实现。
2. 增量数据同步事件能够进行主机和从机之间的增量数据同步,满足服务器之间互相替代的要求。
3.从机到主机的跃迁过程简单,只需发布跃迁信息和重置维护TCP事件即可。
4.全程自动化,节约人力物力。
具体实施方式:
本发明的设计构思为:在对性能效率及稳定性要求较高的系统中,布置两个及两个以上的服务器,各个服务器配置相同,增量数据同步,能够互相替代进行系统内的工作。同一时刻只有一个服务器作为主机(即后述的master),其余服务器则作为从机(即后述的slave),从机与主机增量数据同步,在主机无法正常工作时,系统选定优先级别最高的从机作为新的主机。
下面对技术方案进行详细说明。
在本发明所述系统中,包含两个或两个以上的服务器,各个服务器的配置无差别,且含有相同的功能(关键系统模块无差别的部署)。使用I/O多路复用模型epoll,通过epoll异步管理TCP事件的特性,来实现主从设备之间定时监测在线状态和增量数据同步的功能。
下面对本系统的工作方法进行详细说明。
步骤一:预先建立一个系统,该系统包括若干台具有相同功能的服务器、若干具有通信功能的电子设备,由epoll对系统的TCP事件进行管理。
所述系统由epoll对系统TCP事件进行管理,并预先在每个服务器内定义三个TCP事件:检测从机事件(check_slave_event)、增量数据同步事件(data_sync_event)、检测主机事件(check_master_event)。
check_slave_event 为master监测slave在线状态事件。由master发起与slave建立TCP异步非阻塞连接, 之后将连接交给epoll管理。若连接不成功或连接中断则epoll会感知到连接失败事件,这时master就会判断slave为不在线状态,否则slave为在线状态。将上述流程加入定时树中(定时树由rb_tree实现,这里不做详述),由epoll_wait的时间机制来遍历定时树,定时执行上述流程,达到定时监测的效果。
data_sync_event为master增量数据同步到slave事件。data_sync_event依赖于check_slave_event监测到slave的在线状态,若slave在线,则由master发起与slave建立TCP异步非阻塞连接,并初始化与之对应的一个内存块,之后将连接交给epoll管理。epoll可感知该连接的可读事件,这时若内存块中有增量数据,则epoll会将数据异步的通过该连接同步到slave。所以当master与其他系统模块交互产生增量数据时,把增量数据写入内存块,epoll就会将数据发给slave。
check_master_event为slave监测master在线状态事件。由slave发起与master建立TCP异步非阻塞连接, 之后将连接交给epoll管理。若连接不成功或连接中断则epoll会感知到连接失败事件,这时slave就会判断master为不在线状态,否则master为在线状态。将上述流程加入定时树中(定时树由rb_tree实现,即将预先设定的监测时间点植入到rb_tree数的各个节点),由epoll_wait的时间机制来遍历定时树,定时执行上述流程,达到定时监测的效果。
其中,master维护两个事件:check_slave_event和data_sync_event。只有当check_slave_event监测到slave在线时才有可能触发data_sync_event事件。
slave维护一个事件:check_master_event。
步骤二:各个服务器设备启动,各个服务器设备具有优先级排序。
本步骤中,可以预先人工定义各个服务器设备的优先级别。本发明是根据完成启动的时间先后对各个服务器设备进行优先级别的排序。一般来说,服务器启动时间会有先后之分,启动时间越短的说明性能越好,适合作为主机。
利用启动时间进行优先级的排序,进一步实现了技术方案的全自动化,节约了人力,且最大程度的提升了系统运行的性能。
步骤三:将在线的、优先级最高的服务器作为主机,其余的服务器作为从机,所述主机与各个从机及各个具有通信功能的电子设备建立通信连接。
在本发明中,主机具有两个功能:1.与系统内其他具有通信功能的电子设备建立通信连接,提供服务;2.与各个从机通信,监测从机在线状态,且无差别的将增量数据同步到各个从机。这样设计的好处是使得从机能随时替代主机完成相同的功能,实现无缝衔接。
步骤四:主机运行检测从机事件,定时监控各个从机在线状态,当从机在线时,则启动增量数据同步事件,将主机与系统内其他具有通信功能的电子设备的通信数据增量同步到从机中。
从机运行检测主机事件,定时监控主机在线状态,如在线,则继续作为从机工作,不执行步骤五;如不在线,优先级别最高的从机跃迁为新的主机,并与其它从机建立起通信,将其它从机作为自己的从机,并执行步骤五。
进一步的,如果新的主机已经产生,并在正常运行过程中,这时原来的主机即使故障恢复,重新上线,则只能以从机身份运行。这样能使得系统运行更加稳定。
步骤五:新的主机向系统内的具有通信功能的电子设备发布跃迁信号,表明自己的主机身份,并重置检测从机事件、增量数据同步事件、检测主机事件。
当check_master_event监测到master不在线时,在线的、优先级最高的slave跃迁为master,并且向其他服务器及具有通信功能的电子设备发布从->主跃迁信息,然后重置维护两个事件check_slave_event和data_sync_event。
步骤六:循环执行步骤三-步骤五,直到系统停止工作。
Claims (8)
1.一种基于TCP事件的多服务器主从机工作方法,其特征在于,包括如下步骤:
步骤一:预先建立一个系统,该系统包括若干台具有相同功能的服务器、若干具有通信功能的电子设备,由epoll对系统的TCP事件进行管理,并预先在每个服务器内定义三个TCP事件:检测从机事件、增量数据同步事件、检测主机事件;
所述检测从机事件用于主机定时监测各个从机是否在线,当从机在线时则与从机建立TCP异步非阻塞连接, 之后将该连接交给epoll管理;
所述增量数据同步事件用于主机将增量数据同步到在线的从机;
所述检测主机事件用于从机对主机在线状态进行定时监测;
步骤二:各个服务器启动,各个服务器具有优先级排序;
步骤三:将在线的、优先级最高的服务器作为主机,其余的服务器作为从机,所述主机与各个从机及各个具有通信功能的电子设备建立通信连接;
步骤四:主机运行检测从机事件,定时监控各个从机在线状态,当从机在线时,则启动增量数据同步事件,将主机与系统内其他具有通信功能的电子设备的通信数据增量同步到从机中;
从机运行检测主机事件,定时监控主机在线状态,如在线,则继续作为从机工作,不执行步骤五;如不在线,优先级别最高的从机跃迁为新的主机,并与其它从机建立起通信,将其它从机作为自己的从机,并执行步骤五;
步骤五:新的主机向系统内的具有通信功能的电子设备发布跃迁信号,表明自己的主机身份,并重置检测从机事件、增量数据同步事件、检测主机事件;
步骤六:循环执行步骤三-步骤五,直到系统停止工作。
2.如权利要求1所述的基于TCP事件的多服务器主从机工作方法,其特征在于,步骤四中,定时监测的具体实现方式是:利用rb_tree实现定时监控,系统将各个主机执行检测从机事件的事件及从机执行检测主机事件的时间信息注入到 rb_tree的各个节点,由epoll_wait的时间机制来遍历rb_tree,以定时执行监测。
3.如权利要求1所述的基于TCP事件的多服务器主从机工作方法,其特征在于,所述服务器具有两个。
4.如权利要求1所述的基于TCP事件的多服务器主从机工作方法,其特征在于,步骤二中,根据完成启动的时间先后对各个服务器设备进行优先级别从高到低的排序。
5.如权利要求1~4任一项所述的基于TCP事件的多服务器主从机工作方法,其特征在于,检测从机事件的具体执行方法为:由主机发起与从机建立TCP异步非阻塞连接, 之后将连接交给epoll管理,若连接不成功或连接中断则epoll会感知到连接失败事件,这时主机就会判断从机为不在线状态,否则从机为在线状态。
6.如权利要求1~4任一项所述的基于TCP事件的多服务器主从机工作方法,其特征在于,增量数据同步事件执行的具体流程为:主机发起与从机建立TCP异步非阻塞连接,并初始化与之对应的一个内存块,之后将连接交给epoll管理,epoll可感知该连接的可读事件,若此时内存块中有增量数据,则epoll会将数据异步的通过该连接同步到从机。
7.如权利要求1~4任一项所述的基于TCP事件的多服务器主从机工作方法,其特征在于,检测主机事件执行的具体流程为:由从机发起与主机建立TCP异步非阻塞连接,之后将连接交给epoll管理;若连接不成功或连接中断则epoll会感知到连接失败事件,这时从机就会判断主机为不在线状态,否则主机为在线状态。
8.如权利要求1所述的基于TCP事件的多服务器主从机工作方法,其特征在于,步骤四中,优先级别最高的从机跃迁为新的主机后,如果步骤三中作为主机的服务器恢复在线状态,该服务器作为从机作为与新的主机建立通信连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610635917.8A CN106254236A (zh) | 2016-08-05 | 2016-08-05 | 一种基于tcp事件的多服务器主从机工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610635917.8A CN106254236A (zh) | 2016-08-05 | 2016-08-05 | 一种基于tcp事件的多服务器主从机工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106254236A true CN106254236A (zh) | 2016-12-21 |
Family
ID=58078328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610635917.8A Pending CN106254236A (zh) | 2016-08-05 | 2016-08-05 | 一种基于tcp事件的多服务器主从机工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106254236A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021443A (zh) * | 2017-01-20 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 事件处理方法和装置 |
CN108600029A (zh) * | 2018-05-09 | 2018-09-28 | 深圳壹账通智能科技有限公司 | 一种配置文件更新方法、装置、终端设备及存储介质 |
CN109936481A (zh) * | 2019-03-22 | 2019-06-25 | 北京达佳互联信息技术有限公司 | 主从服务器切换方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060262734A1 (en) * | 2005-05-19 | 2006-11-23 | Chandrashekhar Appanna | Transport protocol connection synchronization |
CN102065138A (zh) * | 2010-12-22 | 2011-05-18 | 上海锐起信息技术有限公司 | 无盘系统中实现服务器热备份控制的方法 |
CN102523118A (zh) * | 2011-12-20 | 2012-06-27 | 西安艾贝尔科技发展有限公司 | 一种局域网内多套控制计算机构成的冗余控制系统与方法 |
CN104391764A (zh) * | 2014-10-22 | 2015-03-04 | 上海海得控制系统股份有限公司 | 一种计算机容错方法及系统 |
-
2016
- 2016-08-05 CN CN201610635917.8A patent/CN106254236A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060262734A1 (en) * | 2005-05-19 | 2006-11-23 | Chandrashekhar Appanna | Transport protocol connection synchronization |
CN102065138A (zh) * | 2010-12-22 | 2011-05-18 | 上海锐起信息技术有限公司 | 无盘系统中实现服务器热备份控制的方法 |
CN102523118A (zh) * | 2011-12-20 | 2012-06-27 | 西安艾贝尔科技发展有限公司 | 一种局域网内多套控制计算机构成的冗余控制系统与方法 |
CN104391764A (zh) * | 2014-10-22 | 2015-03-04 | 上海海得控制系统股份有限公司 | 一种计算机容错方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021443A (zh) * | 2017-01-20 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 事件处理方法和装置 |
CN108021443B (zh) * | 2017-01-20 | 2020-04-07 | 腾讯科技(深圳)有限公司 | 事件处理方法和装置 |
CN108600029A (zh) * | 2018-05-09 | 2018-09-28 | 深圳壹账通智能科技有限公司 | 一种配置文件更新方法、装置、终端设备及存储介质 |
CN109936481A (zh) * | 2019-03-22 | 2019-06-25 | 北京达佳互联信息技术有限公司 | 主从服务器切换方法、装置、电子设备及存储介质 |
CN109936481B (zh) * | 2019-03-22 | 2021-06-18 | 北京达佳互联信息技术有限公司 | 主从服务器切换方法、装置、电子设备及存储介质 |
US11500744B2 (en) | 2019-03-22 | 2022-11-15 | Beijing Dajia Internet Information Technology Co., Ltd. | Method for primary-backup server switching, and control server |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102769667B (zh) | 一种id生成方法、装置和系统 | |
CN106156318B (zh) | 一种实现多节点数据库高可用的系统及方法 | |
CN103532753B (zh) | 一种基于内存换页同步的双机热备方法 | |
CN103051470B (zh) | 一种集群及其磁盘心跳的控制方法 | |
CN105959298A (zh) | 数据传输方法及数据传输装置 | |
CN106254236A (zh) | 一种基于tcp事件的多服务器主从机工作方法 | |
RU2009131314A (ru) | Системы и способы для воссоединения второй группы узлов с первой группой узлов с использованием общего ключа группы | |
CN105574109A (zh) | 一种数据库同步方法、同步设备及系统 | |
CN104158706B (zh) | 环回检测方法及装置 | |
CN104378232A (zh) | 主备集群组网模式下的脑裂发现、恢复方法及装置 | |
CN108073540A (zh) | I2c总线系统、异常设备排查方法 | |
CN102523118A (zh) | 一种局域网内多套控制计算机构成的冗余控制系统与方法 | |
CN101820359A (zh) | 一种网络设备的故障处理方法和设备 | |
CN105577430A (zh) | 一种高端容错服务器的节点管理方法 | |
CN104980693A (zh) | 媒体服务备份方法及系统 | |
CN104503947B (zh) | 多路服务器及其信号处理方法 | |
CN103986791A (zh) | 一种集群内部节点快速时间同步方法 | |
CN111708659B (zh) | 一种基于kubernetes构建云原生容灾架构的方法 | |
CN109002478A (zh) | 分布式文件系统的故障处理方法及相关设备 | |
CN103533017B (zh) | 服务调用方法和系统 | |
CN105681105B (zh) | 网元配置信息同步方法和装置 | |
CN103401791A (zh) | 一种边界端口的识别方法和设备 | |
CN102932190A (zh) | 一种设备单点故障的解决方法及装置 | |
CN103259863B (zh) | 基于集群的控制zookeeper服务的系统及方法 | |
CN103403666A (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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20191227 |
|
AD01 | Patent right deemed abandoned |