一种心跳连接的方法、装置、存储介质及计算机设备与流程

未命名 09-23 阅读:135 评论:0


1.本技术涉及网络监控技术领域,尤其涉及一种心跳连接的方法、装置、计算机可读存储介质及计算机设备。


背景技术:

2.为了提高系统的性能、高可用性、可维护性以及资源利用率,通常会选择使用业务集群,而业务集群中主节点的心跳口故障或与备节点的ip不通时,业务集群会出现双主问题,风险较大。为了解决双主问题,可以新增备心跳口配置项,为了实现心跳口的冗余效果,备心跳口不受主心跳口的影响,因此容易出现主备心跳状态不一致的情况,当业务集群中主节点的主心跳口故障或通过主心跳与备节点的ip不通时,依据的备心跳状态可能不是主节点的实际状态,且备心跳状态在集群界面不可见,需要调试信息或抓包得知备心跳状态,备心跳状态与主心跳状态不一致时无法及时确认,此时依据备心跳状态容易错误地切换业务至备节点。


技术实现要素:

3.有鉴于此,本技术提供一种心跳连接的方法、装置、计算机可读存储介质及计算机设备。
4.具体地,本技术是通过如下技术方案实现的:
5.本技术的第一方面,提供一种心跳连接的方法,该方法应用于发送端设备,发送端设备的主心跳口与接收端设备的主心跳口通讯连接,发送端设备的备心跳口与接收端设备的备心跳口通讯连接,该方法包括:生成心跳报文并发送到发送端设备的主心跳口,复制心跳报文并发送到发送端设备的备心跳口;从发送端设备的主心跳口发送心跳报文至接收端设备的主心跳口,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口,以使接收端设备根据心跳报文更新发送端的状态。
6.本技术的第二方面,提供另一种心跳连接的方法,该方法应用于接收端设备,接收端设备的主心跳口与发送端设备的主心跳口通讯连接,接收端设备的备心跳口与发送端设备的备心跳口通讯连接,该方法包括:从接收端设备的主心跳口接收发送端设备的主心跳口发送的第一心跳报文,从接收端设备的备心跳口接收发送端设备的备心跳口发送的第二心跳报文;第二心跳报文通过发送端设备复制第一心跳报文得到;根据心跳报文更新发送端的状态。
7.本技术的第三方面,提供一种心跳连接的装置,该装置应用于发送端设备,发送端设备的主心跳口与接收端设备的主心跳口通讯连接,发送端设备的备心跳口与接收端设备的备心跳口通讯连接,该装置包括:复制模块,用于生成心跳报文并将其发送到发送端设备的主心跳口,复制心跳报文并将其发送到发送端设备的备心跳口;发送模块,用于从发送端设备的主心跳口发送心跳报文至接收端设备的主心跳口,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口,以使接收端设备根据心跳报文更新发送端的状态。
8.本技术的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现本技术第一方面或第二方面提供的方法的步骤。
9.本技术的第五方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本技术第一方面或第二方面提供的方法的步骤。
10.通过上述方案,本技术至少具有以下有益效果:
11.由于发送端的备心跳口发送的心跳信号复制于发送端的主心跳口,因此无论是主心跳连接(发送端设备的主心跳口与接收端设备的主心跳口之间的通讯连接)还是备心跳连接(发送端设备的备心跳口与接收端设备的备心跳口之间的通讯连接),其反馈的发送端的状态始终是一致的,即使发生了主心跳口故障或通过主心跳与接收端的ip不通时,通过备心跳连接仍能获取准确的状态。上述方案应用在集群系统时,发送端可以视为主节点,接收端可以视为备节点,能够避免因主心跳连接和备心跳连接状态不一致导致的切备问题。
附图说明
12.图1是本技术一示例性实施例示出的一种发送端设备与接收端设备的拓扑图。
13.图2是本技术一示例性实施例示出的一种心跳连接的方法的流程图。
14.图3是本技术一示例性实施例示出的另一种心跳连接的方法的流程图。
15.图4是本技术一示例性实施例示出的一种心跳连接的装置的示意图。
16.图5是本技术一示例性实施例示出的另一种心跳连接的装置的示意图。
17.图6是本技术一示例性实施例示出的一种计算机设备的示意图。
具体实施方式
18.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
19.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
20.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
21.为了业务的持续增长能够得到保障,因此能够实现高可用、高性能、高扩展的集群系统是必不可少的选择。
22.而在集群系统中,为了保障系统的稳定性,会同时设定主节点和备节点,由于备节点需要实时监控主节点的状态以便快速的在主节点故障时接管主节点的业务,这种监控主
节点状态的方式为心跳连接。
23.心跳连接意外断开但主节点并未故障时,备节点失去信号会误以为主节点故障,因此会和主节点争抢业务,也即“脑裂症状”,致使集群系统向外提供的服务异常。为了使心跳连接更为稳定,可以使用两条心跳连接进行冗余设置,当主心跳连接断开时,可以根据备心跳连接判断主节点的状态。
24.由于背心跳连接要起到冗余作用,因此不能与主心跳连接完全一致,因此会产生主心跳连接和备心跳连接状态不一致的情况,此时若主节点的主心连接故障时,依据的备心跳状态可能不是主节点的实际状态,且备心跳状态在集群界面不可见,需要调试信息或抓包得知备心跳状态,备心跳状态与主心跳状态不一致时无法及时确认,此时依据备心跳状态容易错误地切换业务至备节点,或由于不及时导致转移的业务滞后,引起集群系统对外的业务出现异常。
25.为此,本技术提出了一种心跳连接的方法,该方法应用于发送端设备,可以参考图1,发送端设备10的主心跳口101与接收端设备11的主心跳口111通讯连接,发送端设备10的备心跳口102与接收端设备11的备心跳口112通讯连接,可以参考图2,该方法可以包括:
26.s201、生成心跳报文并发送到发送端设备的主心跳口,复制心跳报文并发送到发送端设备的备心跳口;
27.s202、从发送端设备的主心跳口发送心跳报文至接收端设备的主心跳口,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口,以使接收端设备根据心跳报文更新发送端的状态。
28.上述方法可以应用在任一包含心跳连接的发送端设备和接收端设备的系统中,包括但不限于集群系统、其他分布式系统。
29.在发送端设备中,通过把原来仅向主心跳口提供的心跳报文复制一份至备心跳口,使发送端的主心跳口和备心跳口发出的心跳报文相同,则所表示的状态也相同。因此使用上述方案,能够避免发送端设备10的主心跳口101与接收端设备11的主心跳口111通讯异常时,接收端设备11无法正确或及时的判断发送端设备10的状态。
30.在此基础上,发送端设备可以为主节点,接收端设备可以为备节点。
31.可以理解的是,备节点作为主节点的备用节点,需要获取主节点的状态以切换自身为主节点或维持备节点,因此可以由主节点为发送端设备,备节点为接收端设备,以实现备节点接收来自主节点的心跳报文的效果。在一些实施例中,备节点也可以通过心跳连接线路针对心跳报文反馈响应报文,本技术不再赘述。
32.在此基础上,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口的方式可以为单播或组播。
33.具体采用哪种方式本技术不做限制,无论使用哪种方式,上述发送端设备10的主心跳口101与接收端设备11的主心跳口111的通讯连接,以及发送端设备10的备心跳口102与接收端设备11的备心跳口112的通讯连接可以通过:直连、交换机或接口路由等一种或多种方式连接。
34.通讯连接的形式可以是以太网、串行线、光纤、双绞线、无线连接、射频、卫星链路中的一种或多种;通讯连接的协议可以是tcp、udp等。
35.在上述方案的基础上,从发送端设备的备心跳口发送心跳报文至接收端设备的备
心跳口的方式为单播时,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口的步骤之前,
36.单播的源ip地址被配置为发送端设备的备心跳口的ip地址;源ip地址用于指示心跳报文的发送端口;
37.单播的目标ip地址被配置为接收端设备的备心跳口的ip地址;目标ip地址用于指示心跳报文的接收端口。
38.另一实施例中,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口的方式为组播时,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口前,
39.发送端设备的备心跳口的ip地址被配置为与发送端设备的主心跳口的ip地址相同。
40.在上述任一实施例的基础上,发送端的主心跳口与发送端的备心跳口可以同时发送心跳报文,由于两个心跳接口发送的报文相同,若发送时机也相同,则能够更大程度的保持主心跳连接与备心跳连接的一致性,避免两条通讯连接的反馈的发送端设备的状态不一致。
41.相对应的,针对接收端设备,本技术还提供了一种心跳连接的方法,拓扑结构可以参考图2,该方法应用于接收端设备11,接收端设备11的主心跳口111与发送端设备10的主心跳口101通讯连接,接收端设备11的备心跳口112与发送端设备10的备心跳口102通讯连接,参考图3,该方法可以包括:
42.s301、从接收端设备的主心跳口接收发送端设备的主心跳口发送的第一心跳报文,从接收端设备的备心跳口接收发送端设备的备心跳口发送的第二心跳报文;第二心跳报文通过发送端设备复制第一心跳报文得到;
43.s302、根据心跳报文更新发送端的状态。
44.可以理解的是,在接收端设备11中,由于主心跳口和备心跳口所接收的心跳报文相同,因此当备心跳口接收到心跳报文时,可以将该心跳报文的处理流程按照主心跳口接收到的心跳报文的处理流程进行处理。因此对主心跳口和备心跳口收到的心跳报文均可以统一为根据心跳报文更新发送端的状态。
45.与前述一种心跳连接的方法的实施例相对应,本技术还提供了一种心跳连接的装置的实施例。
46.本技术的心跳连接的装置的实施例可以应用在计算机设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在计算机设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
47.请参考图4,一种心跳连接的装置40,装置40应用于设备,发送端设备的主心跳口与接收端设备的主心跳口通讯连接,发送端设备的备心跳口与接收端设备的备心跳口通讯连接,装置40包括:
48.复制模块401,用于生成心跳报文并将其发送到发送端设备的主心跳口,复制心跳报文并将其发送到发送端设备的备心跳口;
49.发送模块402,用于从发送端设备的主心跳口发送心跳报文至接收端设备的主心跳口,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口,以使接收端设备
根据心跳报文更新发送端的状态。
50.参考图5,本技术还提供了另一种心跳连接的装置50,该装置应用于接收端设备11,接收端设备11的主心跳口111与发送端设备10的主心跳口101通讯连接,接收端设备11的备心跳口112与发送端设备10的备心跳口102通讯连接,该装置可以包括:
51.接收模块501,用于从接收端设备的主心跳口接收发送端设备的主心跳口发送的第一心跳报文,从接收端设备的备心跳口接收发送端设备的备心跳口发送的第二心跳报文;第二心跳报文通过发送端设备复制第一心跳报文得到;
52.处理模块502,用于根据心跳报文更新发送端的状态。
53.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
54.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
55.相应的,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一方法实施例的步骤。
56.相应的,参考图6,本技术还提供了一种计算机设备60,包括存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,处理器602执行程序时实现上述任一方法实施例的步骤。
57.计算机设备包括但不限于:个人电脑、服务器、移动设备(如手机和平板电脑)、路由器、工控机等。计算机设备可以采用的架构可以包括但不限于x86架构、arm(advanced risc machines)架构、mips(microprocessor without interlocked piped stages,无内部互锁流水级的微处理器)架构、power(performance optimization with enhanced risc)架构、sparc(scalable processor architecture,可扩充处理器结构)架构以及risc-v架构等。
58.本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
59.本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如fpga(现场可编程门阵列)或asic(专用集
成电路)来执行,并且装置也可以实现为专用逻辑电路。
60.适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。
61.适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cd rom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
62.虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
63.类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
64.由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
65.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。

技术特征:
1.一种心跳连接的方法,其特征在于,所述方法应用于发送端设备,所述发送端设备的主心跳口与接收端设备的主心跳口通讯连接,所述发送端设备的备心跳口与所述接收端设备的备心跳口通讯连接,所述方法包括:生成心跳报文并发送到所述发送端设备的主心跳口,复制所述心跳报文并发送到所述发送端设备的备心跳口;从所述发送端设备的主心跳口发送所述心跳报文至所述接收端设备的主心跳口,从所述发送端设备的备心跳口发送所述心跳报文至所述接收端设备的备心跳口,以使所述接收端设备根据所述心跳报文更新所述发送端的状态。2.根据权利要求1所述的方法,其特征在于,所述发送端设备为主节点,所述接收端设备为备节点。3.根据权利要求2所述的方法,其特征在于,从所述发送端设备的备心跳口发送所述心跳报文至所述接收端设备的备心跳口的方式为单播或组播。4.根据权利要求3所述的方法,其特征在于,所述方式为单播时,从所述发送端设备的备心跳口发送所述心跳报文至所述接收端设备的备心跳口的步骤之前,所述单播的源ip地址被配置为所述发送端设备的备心跳口的ip地址;所述源ip地址用于指示所述心跳报文的发送端口;所述单播的目标ip地址被配置为所述接收端设备的备心跳口的ip地址;所述目标ip地址用于指示所述心跳报文的接收端口。5.根据权利要求3所述的方法,其特征在于,所述方式为组播时,从所述发送端设备的备心跳口发送所述心跳报文至所述接收端设备的备心跳口前,所述发送端设备的备心跳口的ip地址被配置为与所述发送端设备的主心跳口的ip地址相同。6.根据权利要求1所述的方法,其特征在于,所述发送端的主心跳口与所述发送端的备心跳口同时发送所述心跳报文。7.一种心跳连接的方法,其特征在于,所述方法应用于接收端设备,所述接收端设备的主心跳口与发送端设备的主心跳口通讯连接,所述接收端设备的备心跳口与所述发送端设备的备心跳口通讯连接,所述方法包括:从所述接收端设备的主心跳口接收所述发送端设备的主心跳口发送的第一心跳报文,从所述接收端设备的备心跳口接收所述发送端设备的备心跳口发送的第二心跳报文;所述第二心跳报文通过所述发送端设备复制所述第一心跳报文得到;根据所述心跳报文更新所述发送端的状态。8.一种心跳连接的装置,其特征在于,所述装置应用于发送端,所述发送端设备的主心跳口与接收端设备的主心跳口通讯连接,所述发送端设备的备心跳口与所述接收端设备的备心跳口通讯连接,所述装置包括:复制模块,用于生成心跳报文并将其发送到所述发送端设备的主心跳口,复制所述心跳报文并将其发送到所述发送端设备的备心跳口;发送模块,用于从所述发送端设备的主心跳口发送所述心跳报文至所述接收端设备的主心跳口,从所述发送端设备的备心跳口发送所述心跳报文至所述接收端设备的备心跳口,以使所述接收端设备根据所述心跳报文更新所述发送端的状态。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。

技术总结
本申请提供一种心跳连接的方法、装置、计算机可读存储介质及计算机设备,其中该方法应用于发送端设备,发送端设备的主心跳口与接收端设备的主心跳口通讯连接,发送端设备的备心跳口与接收端设备的备心跳口通讯连接,该方法包括:生成心跳报文并发送到发送端设备的主心跳口,复制心跳报文并发送到发送端设备的备心跳口;从发送端设备的主心跳口发送心跳报文至接收端设备的主心跳口,从发送端设备的备心跳口发送心跳报文至接收端设备的备心跳口,以使接收端设备根据心跳报文更新发送端的状态。通过把原来仅向主心跳口提供的心跳报文复制一份至备心跳口,使发送端的主心跳口和备心跳口发出的心跳报文相同,则所表示的状态也相同。则所表示的状态也相同。则所表示的状态也相同。


技术研发人员:岳纲毅 闫丽景 闫释文
受保护的技术使用者:国网河南省电力公司信息通信分公司
技术研发日:2023.06.29
技术公布日:2023/9/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐