CN105515901A - 报文处理装置及方法 - Google Patents
报文处理装置及方法 Download PDFInfo
- Publication number
- CN105515901A CN105515901A CN201510893557.7A CN201510893557A CN105515901A CN 105515901 A CN105515901 A CN 105515901A CN 201510893557 A CN201510893557 A CN 201510893557A CN 105515901 A CN105515901 A CN 105515901A
- Authority
- CN
- China
- Prior art keywords
- node
- message
- status monitoring
- time period
- preset time
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种报文处理装置,包括:判断模块,用于判断从节点是否在第一预设时间段内接收到主节点根据从节点发送的第一心跳报文所返回的第一响应报文;监测模块,用于在第一预设时间段内未接收到第一响应报文,且从节点当前未开启状态监测功能时,开启从节点的状态监测功能,以接收客户节点发送的状态监测报文;切换模块,用于在第三预设时间段内接收的状态监测报文均为第二类状态监测报文时,获取从节点接收的对应不同客户节点的状态监测报文的数量值,并在获取的数量值大于等于预设阈值时,进行从节点和主节点的切换。本发明还公开了一种报文处理方法。本发明能够提高集群网络中主从切换的准确性。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种报文处理装置及方法。
背景技术
目前,在Master-Slave集群网络中,Master主要提供对外事务服务,Slave提供非事务服务或将事务请求转发给Master。一旦Master发生故障,Slave将接管Master节点称为新的Master节点,开始对外提供事务服务。在Master-Slave集群网络中,故障转移比较常见的做法是在Slave上监听Master的运作情况。一旦发现Master网络失连或者无法对外服务,则Slave接管Master成为新的Master。具体的,Slave定时发送心跳报文至Master,若接收到Master根据接收的心跳报文返回的响应报文,判定Master工作正常,若未接收到Master根据接收的心跳报文返回的响应报文,判定Master发生故障,进而接管Master。但是,在Master没有发生故障情况下,由于Master与Slave之间网络出错,Slave也接收不到Master返回的心跳报文,导致Slave误认为Master故障,进而接管Master,Master-Slave集群网络中将会出现两个Master同时提供对外事务服务,影响整个集群网络的正常工作,存在集群网络主从切换不准确的问题。
发明内容
本发明的主要目的在于提供一种报文处理装置及方法,旨在提高集群网络中主从切换的准确性。
为实现上述目的,本发明提供一种报文处理装置,应用于集群网络,所述集群网络包括主节点、从节点以及多个客户节点,所述报文处理装置包括:
判断模块,用于判断其所在从节点是否在第一预设时间段内接收所述主节点根据其所在从节点发送的第一心跳报文所返回的第一响应报文;
监测模块,用于在第一预设时间段内未接收到所述第一响应报文,且其所在从节点当前未开启状态监测功能时,开启其所在从节点的状态监测功能,以接收所述客户节点发送的状态监测报文,其中,所述状态监测报文包括第一类状态监测报文和第二类状态监测报文,若所述客户节点在第二预设时间段内接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点向所述从节点发送所述第一类状态监测报文,否则,所述客户节点向所述从节点发送所述第二类状态监测报文;
切换模块,用于在第三预设时间段内接收的状态监测报文均为第二类状态监测报文时,获取其所在从节点接收的对应不同客户节点的状态监测报文的数量值,并在所述数量值大于等于预设阈值时,进行从节点和主节点的切换。
优选地,所述监测模块还用于当其所在从节点在第一预设时间段内接收到所述第一响应报文,且其所在从节点当前开启状态监测功能时,关闭其所在从节点的状态监测功能。
优选地,所述报文处理装置还包括第一提示模块,用于当其所在从节点在第三预设时间段内接收的状态监测报文包括第一类状态监测报文时,输出第一提示信息。
优选地,所述报文处理装置还包括第二提示模块,用于当其所在从节点在第三预设时间段内未接收到所述状态监测报文时,输出第二提示信息。
优选地,各所述客户节点、所述从节点以及所述主节点处于不同的网段。
进一步地,本发明还提供了一种报文处理方法,应用于集群网络,所述集群网络包括主节点、从节点以及多个客户节点,所述报文处理方法包括:
所述从节点判断在第一预设时间段内是否接收到主节点根据其发送的第一心跳报文返回的第一响应报文;
在第一预设时间段内未接收到所述第一响应报文,且当前未开启状态监测功能时,所述从节点开启状态监测功能,以接收所述客户节点发送的状态监测报文,其中,所述状态监测报文包括第一类状态监测报文和第二类状态监测报文,若所述客户节点在第二预设时间段内接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点向所述从节点发送所述第一类状态监测报文,否则,所述客户节点向所述从节点发送所述第二类状态监测报文;
在第三预设时间段内接收的状态监测报文均为第二类状态监测报文时,所述从节点获取接收的对应不同客户节点的状态监测报文的数量值,并在所述数量值大于等于预设阈值时,进行从节点和主节点的切换。
优选地,所述从节点判断在第一预设时间段内是否接收到主节点根据其发送的第一心跳报文返回的第一响应报文的步骤之后,还包括:
在第一预设时间段内接收到所述第一响应报文,且当前开启状态监测功能时,所述从节点关闭状态监测功能。
优选地,所述从节点开启状态监测功能的步骤之后,还包括:
在第三预设时间段内接收的状态监测报文包括第一类状态监测报文时,所述从节点输出第一提示信息。
优选地,所述从节点开启状态监测功能的步骤之后,还包括:
在第三预设时间段内未接收到所述状态监测报文时,所述从节点输出第二提示信息。
优选地,各所述客户节点、所述从节点以及所述主节点处于不同的网段。
本发明通过在包括主节点、从节点以及多个客户节点的集群网络中,由从节点基于心跳报文对主节点进行状态监测,在未接收到主节点根据其发送的心跳报文所返回的响应报文时,开启状态监测功能,接收并根据客户节点发送的状态监测报文确定是否进行主从切换,相较于现有技术从节点在接收不到主节点根据其发送的心跳报文所返回的响应报文时,直接进行主从切换,本发明在接收不到主节点根据其发送的心跳报文所返回的响应报文时,基于所在集群网络中的客户节点对主节点的状态做进一步判断,能够提高集群网络中主从切换的准确性。
附图说明
图1为本发明报文处理方法应用的集群网络拓扑结构示意图;
图2为本发明报文处理装置第一实施例的功能模块示意图;
图3为本发明报文处理方法第五实施例的客户节点抽样示意图;
图4为本发明报文处理方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种报文处理装置,参照图1,所述报文处理装置应用于集群网络,所述集群网络包括主节点、从节点以及多个客户节点,参照图2,在本发明报文处理装置的第一实施例中,所述报文处理装置包括:
判断模块10,用于判断其所在从节点是否在第一预设时间段内接收所述主节点根据其所在从节点发送的第一心跳报文所返回的第一响应报文;
需要说明的是,心跳报文就是节点间定时通知对方自己仍“在线”的一个自定义报文,用于确保链接的有效性,由于其按照一定的时间间隔发送,类似于心跳,所以称之为心跳报文。具体的,发文方定时发送心跳报文至收文方,告知收文方自己在线;收文方在接收到发文方发送的心跳报文时,确认发文方在线,同时反馈响应报文至发文方,告知发文方自己在线;发文方在接收到收文方反馈的响应报文时,确认收文方在线。
在本实施例中,并不限制心跳报文的具体内容以及心跳周期,也不限制响应报文的具体内容,具体按实际需要进行设置,例如,本实施例中,从节点按照第一心跳周期每2秒向主节点发送仅包括报文头的空报文作为所述第一心跳报文,所述主节点在接收到所述第一心跳报文之后,向所述从节点发送仅包括报文头的空报文作为所述第一响应报文。
基于前述描述,本领域技术人员可以理解的是,所述从节点接收主节点根据其发送的第一心跳报文返回的第一响应报文的目的在于,确认所述主节点是否在线,即是否正常对外提供事务服务。由于报文从发送方到接收方需要一定的传输时间,而且网络是一个动态的节点集合,可能在某一时间段,由于某种原因造成了特定网络线路的不可达,或者是在某一时间段,中间节点接收到超过处理能力的报文,将会导致部分报文被丢弃。因此,在本实施例中,判断模块10采用第一预设时间段对所述第一响应报文的传输时间进行限制。其中,所述第一预设时间段按实际需要设置,例如,本实施例将所述第一预设时间段设置为所述第一心跳周期的整数倍,优选将所述第一预设时间段设置为与所述第一心跳周期相同。
监测模块20,用于在第一预设时间段内未接收到所述第一响应报文,且其所在从节点当前未开启状态监测功能时,开启其所在从节点的状态监测功能,以接收所述客户节点发送的状态监测报文,其中,所述状态监测报文包括第一类状态监测报文和第二类状态监测报文,若所述客户节点在第二预设时间段内接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点向所述从节点发送所述第一类状态监测报文,否则,所述客户节点向所述从节点发送所述第二类状态监测报文;
本实施例中,在第一预设时间段内未接收到所述第一响应报文时,所述从节点初步判定所述主节点“下线”(可能是从节点和主节点之间网络故障,也可能是主节点故障),无法对外提供事务服务,此时开启状态监测功能,以接收所述客户节点发送的状态监测报文,根据各客户节点发送的状态监测报文确认所述主节点是否“真的”下线。
此外,本实施例对所述状态监测报文不作限制,具体可按实际需要进行设置,例如,可以采用面向连接的TCP(TransmissionControlProtocol,传输控制协议)报文作为状态监测报文,也可以采用无连接的UDP(UserDatagramProtocol,用户数据报协议)报文作为状态监测报文。优选地,考虑到传输效率,本实施例采用无连接的UDP报文作为状态监测报文。
具体的,在本实施例中,所述客户节点按照第二心跳周期向所述主节点发送第二心跳报文,并接收所述主节点根据接收的所述第二心跳报文返回的第二响应报文。若所述客户节点在第二预设时间段(所述第二预设时间段按实际需要设置,例如,本实施例将所述第二预设时间段设置为所述第二心跳周期的整数倍,优选将所述第二预设时间段设置为与所述第二心跳周期相同)内接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点判定所述主节点在线,向所述从节点发送第一类状态监测报文,所述第一类状态监测报文包括所述主节点的第一标识信息、所述客户节点的第二标识信息以及所述第一类状态监测报文的发送时间;若所述客户节点在第二预设时间段未接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点判定所述主节点下线,向所述从节点发送第二类状态监测报文,所述第二类状态监测报文包括所述客户节点的第二标识信息和所述第二类状态监测报文的发送时间。其中,所述标识信息用于唯一标识节点,例如,可以选择节点的IP地址或者MAC地址作为节点的标识信息,具体按实际需要设置。
需要说明的是,为不影响从节点的正常工作,所述客户节点在向所述从节点发送状态监测报文时,具体可将状态监测报文发至从节点的预定端口,例如,所述客户节点将状态监测报文发至所述从节点的9999端口。因此,在本实施例中,监测模块20在开启其所在从节点的状态监测功能时,具体开启其所在从节点预定端口的UDP服务,其所在从节点即可接收客户节点发至预定端口的状态监测报文。
切换模块30,用于在第三预设时间段内接收的状态监测报文均为第二类状态监测报文时,获取其所在从节点接收的对应不同客户节点的状态监测报文的数量值,并在所述数量值大于等于预设阈值时,进行从节点和主节点的切换。
本实施例中,所述第三预设时间段可以设置为所述第二心跳周期的整数倍,例如,本实施例优选将所述第三预设时间段设置为所述第二心跳周期的3倍。需要说明的是,本实施例切换模块30采用多数人仲裁判断方式确认所述主节点是否“真的”下线。
具体的,所述切换模块30在其所在从节点接收到客户节点发送的状态监测报文之后,通过判断接收的状态监测报文是否携带有所述主节点的第一标识信息识别接收的是第一类状态监测报文,还是第二类状态监测报文,并根据状态监测报文携带的发送时间以及客户节点的第二标识信息进行统计,若在第三预设时间段内接收的均为第二类状态监测报文时,获取对应不同客户节点的状态监测报文的数量值(即在所述第三预设时间段内,第二类状态监测报文来自不同客户节点的数量)sum_client,并判断所述数量值sum_client是否大于等于预设阈值,其中,若记客户节点为clientx(x=1,2,3……,n),则将sum({client1,client2…clientx})/2+1作为所述预设阈值;当判断所述数量值sum_client大于等于所述预设阈值sum({client1,client2…clientx})/2+1时,所述切换模块30确认所述主节点下线,进行从节点和主节点的切换,使其所在从节点成为新的主节点,开始对外提供事务服务;当所述切换模块30判断所述数量值sum_client小于所述预设阈值sum({client1,client2…clientx})/2+1时(可能是从节点和大部分客户节点间网络故障导致),继续进行状态监测,不进行从节点和主节点的切换。
本领域技术人员可以理解的是,在所述切换模块30完成从节点和主节点的切换,即所述切换模块30所在的从节点成为新的主节点之后,无需继续进行状态监测,此时由所述监测模块20关闭其所在从节点的状态监测功能,屏蔽客户节点发送的状态监测报文。
本实施例提供的报文处理装置,在包括主节点、从节点以及多个客户节点的集群网络中,内置于从节点运行,使得从节点基于心跳报文对主节点进行状态监测,在未接收到主节点根据其发送的心跳报文所返回的响应报文时,开启状态监测功能,接收并根据客户节点发送的状态监测报文确定是否进行主从切换,相较于现有技术从节点在接收不到主节点根据其发送的心跳报文所返回的响应报文时,直接进行主从切换,本发明在接收不到主节点根据其发送的心跳报文所返回的响应报文时,基于所在集群网络中的客户节点对主节点的状态做进一步判断,能够提高集群网络中主从切换的准确性。
进一步的,基于第一实施例,提出本发明报文处理装置的第二实施例,在本实施例中,所述监测模块20还用于当其所在从节点在第一预设时间段内接收到所述第一响应报文,且其所在从节点当前开启状态监测功能时,关闭其所在从节点的状态监测功能。
基于第一实施例的描述,本领域技术人员可以理解的是,所述监测模块20开启其所在从节点的状态监测功能的目的在于,当不确定所述主节点是否在线时,开启状态监测功能,接收并根据客户节点发送的状态监测报文确认所述主节点是否在线。在本实施例中,当其所在从节点在所述第一预设时间段内接收到所述第一响应报文时,所述监测模块20确定所述主节点在线,若其所在从节点当前已开启状态监测功能,则关闭其所在从节点的状态监测功能,避免处理资源的浪费。
进一步的,基于第一实施例,提出本发明报文处理装置的第三实施例,在本实施例中,所述报文处理装置还包括第一提示模块,用于当其所在从节点在第三预设时间段内接收的状态监测报文包括第一类状态监测报文时,输出第一提示信息。
需要说明的是,网络分区是指由于从节点与主节点之间的网络故障,导致从节点误认为主节点故障,错误接管主节点,使得集群网络中出现两个“主节点”同时提供对外事务服务。网络分区将导致集群网络出现数据不一致的问题,影响整个集群网络的正常工作。
在本实施例中,若其所在从节点在第三预设时间段内接收到任一客户节点发送的第一类状态监测报文,所述第一提示模块判定此时集群网络出现网络分区,输出第一提示信息,例如,在判定集群网络出现网络分区时,所述第一提示模块基于其所在从节点通过邮件的形式将第一提示信息“出现网络分区,请尽快修复”发送至网络管理员的邮箱,以提示网络管理员进行修复。
本实施例通过第一提示模块在判定网络分区时,输出第一提示信息,能够提升集群网络的工作稳定性。
进一步的,基于第一实施例,提出本发明报文处理装置的第四实施例,在本实施例中,所述报文处理装置还包括第二提示模块,用于当其所在从节点在第三预设时间段内未接收到所述状态监测报文时,输出第二提示信息。
基于第一实施例的描述,本领域技术人员可以理解的是,若第二提示模块所在的从节点在第三预设时间段内未接收到任一客户节点发送的状态监测报文(包括第一类状态监测报文和第二类状态监测报文),说明所述从节点自身网络故障,此时,所述第二提示模块输出第二提示信息,以提示网络管理员修复其所在从节点的网络故障,例如,所述第二提示模块在判定其所在从节点自身网络故障时,通过声和或光的形式输出第二提示信息,或者基于网络管理员预留的联系方式通过预设2/3/4G模块以短信的形式发送第二提示信息“网络异常,请尽快是否”至网络管理员的手机,以提示网络管理员进行修复。
本实施例通过第二提示模块在判定自身网络故障时,输出第二提示信息,能够提升集群网络的工作稳定性。
进一步的,基于前述任一实施例,提出本发明报文处理装置的第五实施例,在本实施例中,各所述客户节点、所述从节点以及所述主节点处于不同的网段。
需要说明的是,在集群网络中,通常设置有较多数量的客户节点,若集群网络中所有客户节点均向从节点发送所述状态监测报文,将会消耗集群网络的大量的网络资源。而且,所述从节点在接收到客户节点发送的状态监测报文之后,均会进行处理,将会消耗从节点大量的处理资源。此外,当两个客户节点处于同一网段时,两个客户节点的网络状态通常相同,即其中一个客户节点与主节点之间网络故障时,另一客户节点与主节点之间同样网络故障。
考虑带到前述缺陷,在本实施例中,进行抽样监测,具体的,由于从节点采用多数人仲裁判断方式确认所述主节点是否“真的”下线,本实施例预先选取奇数(便于判断)个的客户节点作为抽样客户节点,只有被选取为抽样客户节点的才向所述从节点发送所述状态监测报文,供所述从节点对所述主节点的状态进行监测,其中,客户节点发送状态监测报文具体可参照前述实施例,此处不再赘述。
更为具体的,本实施例在部署集群网络时,将所述主节点和所述从节点部署在不同网段,以确保从节点在主节点故障时能够正确接管。同时,在选择抽样客户节点时,参照图3,选择的各抽样客户节点、所述从节点以及所述主节点均处于不同的网段。
本实施例通过预先选择奇数个位于不同网段的客户节点作为抽样客户节点,能够进一步提升集群网络中主从切换的准确性。
本发明还提供一种报文处理方法,参照图1,所述报文处理方法应用于集群网络,所述集群网络包括主节点、从节点以及多个客户节点,参照图4,在本发明报文处理方法的第一实施例中,所述报文处理方法包括:
步骤S10,所述从节点判断在第一预设时间段内是否接收到主节点根据其发送的第一心跳报文返回的第一响应报文;
需要说明的是,心跳报文就是节点间定时通知对方自己仍“在线”的一个自定义报文,用于确保链接的有效性,由于其按照一定的时间间隔发送,类似于心跳,所以称之为心跳报文。具体的,发文方定时发送心跳报文至收文方,告知收文方自己在线;收文方在接收到发文方发送的心跳报文时,确认发文方在线,同时反馈响应报文至发文方,告知发文方自己在线;发文方在接收到收文方反馈的响应报文时,确认收文方在线。
在本实施例中,并不限制心跳报文的具体内容以及心跳周期,也不限制响应报文的具体内容,具体按实际需要进行设置,例如,本实施例中,从节点按照第一心跳周期每2秒向主节点发送仅包括报文头的空报文作为所述第一心跳报文,所述主节点在接收到所述第一心跳报文之后,向所述从节点发送仅包括报文头的空报文作为所述第一响应报文。
基于前述描述,本领域技术人员可以理解的是,所述从节点接收主节点根据其发送的第一心跳报文返回的第一响应报文的目的在于,确认所述主节点是否在线,即是否正常对外提供事务服务。由于报文从发送方到接收方需要一定的传输时间,而且网络是一个动态的节点集合,可能在某一时间段,由于某种原因造成了特定网络线路的不可达,或者是在某一时间段,中间节点接收到超过处理能力的报文,将会导致部分报文被丢弃。因此,在本实施例中,采用第一预设时间段对所述第一响应报文的传输时间进行限制。其中,所述第一预设时间段按实际需要设置,例如,本实施例将所述第一预设时间段设置为所述第一心跳周期的整数倍,优选将所述第一预设时间段设置为与所述第一心跳周期相同。
步骤S20,在第一预设时间段内未接收到所述第一响应报文,且当前未开启状态监测功能时,所述从节点开启状态监测功能,以接收所述客户节点发送的状态监测报文,其中,所述状态监测报文包括第一类状态监测报文和第二类状态监测报文,若所述客户节点在第二预设时间段内接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点向所述从节点发送所述第一类状态监测报文,否则,所述客户节点向所述从节点发送所述第二类状态监测报文;
本实施例中,在第一预设时间段内未接收到所述第一响应报文时,所述从节点初步判定所述主节点“下线”(可能是从节点和主节点之间网络故障,也可能是主节点故障),无法对外提供事务服务,此时开启状态监测功能,以接收所述客户节点发送的状态监测报文,根据各客户节点发送的状态监测报文确认所述主节点是否“真的”下线。
此外,本实施例对所述状态监测报文不作限制,具体可按实际需要进行设置,例如,可以采用面向连接的TCP(TransmissionControlProtocol,传输控制协议)报文作为状态监测报文,也可以采用无连接的UDP(UserDatagramProtocol,用户数据报协议)报文作为状态监测报文。优选地,考虑到传输效率,本实施例采用无连接的UDP报文作为状态监测报文。
具体的,在本实施例中,所述客户节点按照第二心跳周期向所述主节点发送第二心跳报文,并接收所述主节点根据接收的所述第二心跳报文返回的第二响应报文。若所述客户节点在第二预设时间段(所述第二预设时间段按实际需要设置,例如,本实施例将所述第二预设时间段设置为所述第二心跳周期的整数倍,优选将所述第二预设时间段设置为与所述第二心跳周期相同)内接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点判定所述主节点在线,向所述从节点发送第一类状态监测报文,所述第一类状态监测报文包括所述主节点的第一标识信息、所述客户节点的第二标识信息以及所述第一类状态监测报文的发送时间;若所述客户节点在第二预设时间段未接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点判定所述主节点下线,向所述从节点发送第二类状态监测报文,所述第二类状态监测报文包括所述客户节点的第二标识信息和所述第二类状态监测报文的发送时间。其中,所述标识信息用于唯一标识节点,例如,可以选择节点的IP地址或者MAC地址作为节点的标识信息,具体按实际需要设置。
需要说明的是,为不影响从节点的正常工作,所述客户节点在向所述从节点发送状态监测报文时,具体可将状态监测报文发至从节点的预定端口,例如,所述客户节点将状态监测报文发至所述从节点的9999端口。因此,在本实施例中,所述从节点在开启状态监测功能时,具体开启预定端口的UDP服务,即可接收客户节点发至预定端口的状态监测报文。
步骤S30,在第三预设时间段内接收的状态监测报文均为第二类状态监测报文时,所述从节点获取接收的对应不同客户节点的状态监测报文的数量值,并在所述数量值大于等于预设阈值时,进行从节点和主节点的切换。
本实施例中,所述第三预设时间段可以设置为所述第二心跳周期的整数倍,例如,本实施例优选将所述第三预设时间段设置为所述第二心跳周期的3倍。需要说明的是,本实施例所述从节点采用多数人仲裁判断方式确认所述主节点是否“真的”下线。
具体的,所述从节点在接收到客户节点发送的状态监测报文之后,通过判断接收的状态监测报文是否携带有所述主节点的第一标识信息识别接收的是第一类状态监测报文,还是第二类状态监测报文,并根据状态监测报文携带的发送时间以及客户节点的第二标识信息进行统计,若在第三预设时间段内接收的均为第二类状态监测报文时,获取对应不同客户节点的状态监测报文的数量值(即在所述第三预设时间段内,第二类状态监测报文来自不同客户节点的数量)sum_client,并判断所述数量值sum_client是否大于等于预设阈值,其中,若记客户节点为clientx(x=1,2,3……,n),则将sum({client1,client2…clientx})/2+1作为所述预设阈值;当所述从节点判断所述数量值sum_client小于所述预设阈值sum({client1,client2…clientx})/2+1时,所述从节点确认所述主节点下线,进行从节点和主节点的切换,成为新的主节点,开始对外提供事务服务;当所述从节点判断所述数量值sum_client大于等于所述预设阈值sum({client1,client2…clientx})/2+1时(可能是从节点和大部分客户节点间网络故障导致),所述从节点继续进行状态监测,不进行从节点和主节点的切换。
本领域技术人员可以理解的是,在所述从节点完成从节点和主节点的切换,即所述从节点成为新的主节点之后,所述从节点无需继续进行状态监测,此时所述从节点关闭状态监测功能,屏蔽客户节点发送的状态监测报文。
本实施例提供的报文处理方法,在包括主节点、从节点以及多个客户节点的集群网络中,从节点基于心跳报文对主节点进行状态监测,在未接收到主节点根据其发送的心跳报文所返回的响应报文时,开启状态监测功能,接收并根据客户节点发送的状态监测报文确定是否进行主从切换,相较于现有技术从节点在接收不到主节点根据其发送的心跳报文所返回的响应报文时,直接进行主从切换,本发明在接收不到主节点根据其发送的心跳报文所返回的响应报文时,基于所在集群网络中的客户节点对主节点的状态做进一步判断,能够提高集群网络中主从切换的准确性。
进一步的,基于第一实施例,提出本发明报文处理方法的第二实施例,在本实施例中,所述步骤S10之后,还包括:
在第一预设时间段内接收到所述第一响应报文,且当前开启状态监测功能时,所述从节点关闭状态监测功能。
基于第一实施例的描述,本领域技术人员可以理解的是,所述从节点开启状态监测功能的目的在于,当不确定所述主节点是否在线时,开启状态监测功能,接收并根据客户节点发送的状态监测报文确认所述主节点是否在线。在本实施例中,在所述第一预设时间段内接收到所述第一响应报文时,所述从节点确定所述主节点在线,若当前已开启状态监测功能,则关闭状态监测功能,避免处理资源的浪费。
进一步的,基于第一实施例,提出本发明报文处理方法的第三实施例,在本实施例中,所述步骤S20之后,还包括:
在第三预设时间段内接收的状态监测报文包括第一类状态监测报文时,所述从节点输出第一提示信息。
需要说明的是,网络分区是指由于从节点与主节点之间的网络故障,导致从节点误认为主节点故障,错误接管主节点,使得集群网络中出现两个“主节点”同时提供对外事务服务。网络分区将导致集群网络出现数据不一致的问题,影响整个集群网络的正常工作。
在本实施例中,若在第三预设时间段内接收到任一客户节点发送的第一类状态监测报文,所述从节点判定此时集群网络出现网络分区,输出第一提示信息,例如,在判定集群网络出现网络分区时,所述从节点通过邮件的形式将第一提示信息“出现网络分区,请尽快修复”发送至网络管理员的邮箱,以提示网络管理员进行修复。
本实施例通过从节点在判定网络分区时,输出第一提示信息,能够提升集群网络的工作稳定性。
进一步的,基于第一实施例,提出本发明报文处理方法的第四实施例,在本实施例中,所述步骤S20之后,还包括:
在第三预设时间段内未接收到所述状态监测报文时,所述从节点输出第二提示信息。
基于第一实施例的描述,本领域技术人员可以理解的是,若在第三预设时间段内未接收到任一客户节点发送的状态监测报文(包括第一类状态监测报文和第二类状态监测报文),说明所述从节点自身网络故障,此时,所述从节点输出第二提示信息,以提示网络管理员修复自身的网络故障,例如,所述从节点在判定自身网络故障时,通过声和或光的形式输出第二提示信息,或者基于网络管理员预留的联系方式通过预设2/3/4G模块以短信的形式发送第二提示信息“网络异常,请尽快是否”至网络管理员的手机,以提示网络管理员进行修复。
本实施例通过从节点在判定自身网络故障时,输出第二提示信息,能够提升集群网络的工作稳定性。
进一步的,基于前述任一实施例,提出本发明报文处理方法的第五实施例,在本实施例中,各所述客户节点、所述从节点以及所述主节点处于不同的网段。
需要说明的是,在集群网络中,通常设置有较多数量的客户节点,若集群网络中所有客户节点均向从节点发送所述状态监测报文,将会消耗集群网络的大量的网络资源。而且,所述从节点在接收到客户节点发送的状态监测报文之后,均会进行处理,将会消耗从节点大量的处理资源。此外,当两个客户节点处于同一网段时,两个客户节点的网络状态通常相同,即其中一个客户节点与主节点之间网络故障时,另一客户节点与主节点之间同样网络故障。
考虑带到前述缺陷,在本实施例中,进行抽样监测,具体的,由于从节点采用多数人仲裁判断方式确认所述主节点是否“真的”下线,本实施例预先选取奇数(便于判断)个的客户节点作为抽样客户节点,只有被选取为抽样客户节点的才向所述从节点发送所述状态监测报文,供所述从节点对所述主节点的状态进行监测,其中,客户节点发送状态监测报文具体可参照前述实施例,此处不再赘述。
更为具体的,本实施例在部署集群网络时,将所述主节点和所述从节点部署在不同网段,以确保从节点在主节点故障时能够正确接管。同时,在选择抽样客户节点时,参照图3,选择的各抽样客户节点、所述从节点以及所述主节点均处于不同的网段。
本实施例通过从节点预先选择奇数个位于不同网段的客户节点作为抽样客户节点,能够进一步提升集群网络中主从切换的准确性。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种报文处理装置,其特征在于,所述报文处理装置应用于集群网络,所述集群网络包括主节点、从节点以及多个客户节点,所述报文处理装置包括:
判断模块,用于判断其所在从节点是否在第一预设时间段内接收所述主节点根据其所在从节点发送的第一心跳报文所返回的第一响应报文;
监测模块,用于在第一预设时间段内未接收到所述第一响应报文,且其所在从节点当前未开启状态监测功能时,开启其所在从节点的状态监测功能,以接收所述客户节点发送的状态监测报文,其中,所述状态监测报文包括第一类状态监测报文和第二类状态监测报文,若所述客户节点在第二预设时间段内接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点向所述从节点发送所述第一类状态监测报文,否则,所述客户节点向所述从节点发送所述第二类状态监测报文;
切换模块,用于在第三预设时间段内接收的状态监测报文均为第二类状态监测报文时,获取其所在从节点接收的对应不同客户节点的状态监测报文的数量值,并在所述数量值大于等于预设阈值时,进行从节点和主节点的切换。
2.如权利要求1所述的报文处理装置,其特征在于,所述监测模块还用于当其所在从节点在第一预设时间段内接收到所述第一响应报文,且其所在从节点当前开启状态监测功能时,关闭其所在从节点的状态监测功能。
3.如权利要求1所述的报文处理装置,其特征在于,所述报文处理装置还包括第一提示模块,用于当其所在从节点在第三预设时间段内接收的状态监测报文包括第一类状态监测报文时,输出第一提示信息。
4.如权利要求1所述的报文处理装置,其特征在于,所述报文处理装置还包括第二提示模块,用于当其所在从节点在第三预设时间段内未接收到所述状态监测报文时,输出第二提示信息。
5.如权利要求1-4任一项所述的报文处理装置,其特征在于,各所述客户节点、所述从节点以及所述主节点处于不同的网段。
6.一种报文处理方法,其特征在于,所述报文处理方法应用于集群网络,所述集群网络包括主节点、从节点以及多个客户节点,所述报文处理方法包括:
所述从节点判断在第一预设时间段内是否接收到主节点根据其发送的第一心跳报文返回的第一响应报文;
在第一预设时间段内未接收到所述第一响应报文,且当前未开启状态监测功能时,所述从节点开启状态监测功能,以接收所述客户节点发送的状态监测报文,其中,所述状态监测报文包括第一类状态监测报文和第二类状态监测报文,若所述客户节点在第二预设时间段内接收到所述主节点根据其发送的第二心跳报文所返回的第二响应报文,所述客户节点向所述从节点发送所述第一类状态监测报文,否则,所述客户节点向所述从节点发送所述第二类状态监测报文;
在第三预设时间段内接收的状态监测报文均为第二类状态监测报文时,所述从节点获取接收的对应不同客户节点的状态监测报文的数量值,并在所述数量值大于等于预设阈值时,进行从节点和主节点的切换。
7.如权利要求6所述的报文处理方法,其特征在于,所述从节点判断在第一预设时间段内是否接收到主节点根据其发送的第一心跳报文返回的第一响应报文的步骤之后,还包括:
在第一预设时间段内接收到所述第一响应报文,且当前开启状态监测功能时,所述从节点关闭状态监测功能。
8.如权利要求6所述的报文处理方法,其特征在于,所述从节点开启状态监测功能的步骤之后,还包括:
在第三预设时间段内接收的状态监测报文包括第一类状态监测报文时,所述从节点输出第一提示信息。
9.如权利要求6所述的报文处理方法,其特征在于,所述从节点开启状态监测功能的步骤之后,还包括:
在第三预设时间段内未接收到所述状态监测报文时,所述从节点输出第二提示信息。
10.如权利要求6-9任一项所述的报文处理方法,其特征在于,各所述客户节点、所述从节点以及所述主节点处于不同的网段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510893557.7A CN105515901B (zh) | 2015-11-27 | 2015-11-27 | 报文处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510893557.7A CN105515901B (zh) | 2015-11-27 | 2015-11-27 | 报文处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105515901A true CN105515901A (zh) | 2016-04-20 |
CN105515901B CN105515901B (zh) | 2019-01-22 |
Family
ID=55723560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510893557.7A Active CN105515901B (zh) | 2015-11-27 | 2015-11-27 | 报文处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105515901B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547301A (zh) * | 2017-06-21 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种主备设备倒换方法及装置 |
CN108363610A (zh) * | 2018-02-09 | 2018-08-03 | 华为技术有限公司 | 一种虚拟机监控插件的控制方法及设备 |
CN109218126A (zh) * | 2017-06-30 | 2019-01-15 | 中兴通讯股份有限公司 | 监测节点存活状态的方法、装置及系统 |
CN110974204A (zh) * | 2019-12-25 | 2020-04-10 | 杭州涂鸦信息技术有限公司 | 一种实现双向心跳机制的方法及其系统和装置 |
CN112073987A (zh) * | 2019-06-11 | 2020-12-11 | 阿里巴巴集团控股有限公司 | 状态监测方法、装置、设备及存储介质 |
CN112636955A (zh) * | 2020-12-10 | 2021-04-09 | 锐捷网络股份有限公司 | 堆叠双挂处理方法及装置 |
CN113626165A (zh) * | 2021-07-30 | 2021-11-09 | 北京达佳互联信息技术有限公司 | 一种打包队列的管理方法、装置及系统 |
CN114513437A (zh) * | 2022-01-20 | 2022-05-17 | 杭州朗和科技有限公司 | 一种网络测试方法、装置、介质及计算设备 |
CN117424352A (zh) * | 2023-12-19 | 2024-01-19 | 浙江简捷物联科技有限公司 | 储能柜主从自主切换方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905247A (zh) * | 2014-03-10 | 2014-07-02 | 北京交通大学 | 一种基于多客户裁决的双机备份方法及系统 |
-
2015
- 2015-11-27 CN CN201510893557.7A patent/CN105515901B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905247A (zh) * | 2014-03-10 | 2014-07-02 | 北京交通大学 | 一种基于多客户裁决的双机备份方法及系统 |
Non-Patent Citations (1)
Title |
---|
蒋涛: "一种面向客户端的双机热备机制的研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547301A (zh) * | 2017-06-21 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种主备设备倒换方法及装置 |
CN107547301B (zh) * | 2017-06-21 | 2021-07-30 | 新华三信息安全技术有限公司 | 一种主备设备倒换方法及装置 |
CN109218126A (zh) * | 2017-06-30 | 2019-01-15 | 中兴通讯股份有限公司 | 监测节点存活状态的方法、装置及系统 |
CN109218126B (zh) * | 2017-06-30 | 2023-10-17 | 中兴通讯股份有限公司 | 监测节点存活状态的方法、装置及系统 |
CN108363610A (zh) * | 2018-02-09 | 2018-08-03 | 华为技术有限公司 | 一种虚拟机监控插件的控制方法及设备 |
CN112073987A (zh) * | 2019-06-11 | 2020-12-11 | 阿里巴巴集团控股有限公司 | 状态监测方法、装置、设备及存储介质 |
CN110974204A (zh) * | 2019-12-25 | 2020-04-10 | 杭州涂鸦信息技术有限公司 | 一种实现双向心跳机制的方法及其系统和装置 |
CN112636955A (zh) * | 2020-12-10 | 2021-04-09 | 锐捷网络股份有限公司 | 堆叠双挂处理方法及装置 |
CN113626165A (zh) * | 2021-07-30 | 2021-11-09 | 北京达佳互联信息技术有限公司 | 一种打包队列的管理方法、装置及系统 |
CN114513437A (zh) * | 2022-01-20 | 2022-05-17 | 杭州朗和科技有限公司 | 一种网络测试方法、装置、介质及计算设备 |
CN117424352A (zh) * | 2023-12-19 | 2024-01-19 | 浙江简捷物联科技有限公司 | 储能柜主从自主切换方法及系统 |
CN117424352B (zh) * | 2023-12-19 | 2024-03-12 | 浙江简捷物联科技有限公司 | 储能柜主从自主切换方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105515901B (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105515901A (zh) | 报文处理装置及方法 | |
CN103516571B (zh) | 一种双can总线保证数据通信可靠性的系统架构及其方法 | |
CN103001722B (zh) | 一种基于时间触发以太网的数据传输方法及节点设备 | |
CN106487578A (zh) | 错误恢复方法及应用其的物联网系统与充电系统 | |
WO2017211169A1 (zh) | 链路测试方法和装置及系统 | |
CN101252500A (zh) | 任意拓扑相交环网的实现方法、节点和相交环网 | |
CN103916275A (zh) | 一种bfd检测装置和方法 | |
CN107360239A (zh) | 一种客户端连接状态检测方法及系统 | |
CN107567107A (zh) | 一种传输数据的方法及装置 | |
CN105429814A (zh) | 利用多板卡保护bfd的方法和设备 | |
CN107528747B (zh) | 主从站通信状态的诊断方法和装置及计算机可读存储介质 | |
CN104852828A (zh) | 一种网络时延检测方法,装置及系统 | |
CN103607302A (zh) | 故障信息上报方法、监控设备及管理设备 | |
WO2016086890A1 (zh) | 一种检测连通性的方法和装置 | |
CN110072244A (zh) | 一种无线链路失败定时器的控制方法及设备 | |
CN105516658A (zh) | 一种监控设备控制方法及装置 | |
CN104253739A (zh) | 一种永远在线业务的实现方法、系统和设备 | |
CN105099805A (zh) | 一种双向转发检测方法及系统 | |
CN102918802B (zh) | 确定故障指示状态的方法、节点和系统 | |
CN104536853A (zh) | 一种保障双控制器存储设备资源连续可用性的方法 | |
CN104081743A (zh) | 一种链路管理方法、设备和通信系统 | |
CN108270593A (zh) | 一种双机热备份方法和系统 | |
CN109450810A (zh) | 识别冗余消息的方法及装置 | |
CN210274135U (zh) | 一种远程连接系统 | |
CN101667927A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |