CN114679399A - 主机切换的方法、装置、存储介质及电子装置 - Google Patents

主机切换的方法、装置、存储介质及电子装置 Download PDF

Info

Publication number
CN114679399A
CN114679399A CN202210268591.5A CN202210268591A CN114679399A CN 114679399 A CN114679399 A CN 114679399A CN 202210268591 A CN202210268591 A CN 202210268591A CN 114679399 A CN114679399 A CN 114679399A
Authority
CN
China
Prior art keywords
dual
service
equipment
configuration information
heartbeat
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
Application number
CN202210268591.5A
Other languages
English (en)
Inventor
周兴晨
李亚林
孙勇
袁万立
林永涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202210268591.5A priority Critical patent/CN114679399A/zh
Publication of CN114679399A publication Critical patent/CN114679399A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例提供了一种主机切换的方法、装置、存储介质及电子装置,其中,该方法包括:获取第一设备与第二设备之间的第一心跳事件,其中,第一设备为主机,第二设备为备机,第一心跳事件是第一设备与第二设备通过直连网络传输的心跳事件;在第一心跳事件异常的情况下,获取第一设备与第二设备之间的第二心跳事件,其中,第二心跳事件是第一设备与第二设备通过业务网络传输的心跳事件;在第二心跳事件异常的情况下,将第二设备切换为主机。通过本发明,解决了心跳检测可靠性较低的问题,进而达到了提高心跳检测可靠性的效果。

Description

主机切换的方法、装置、存储介质及电子装置
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种主机切换的方法、装置、存储介质及电子装置。
背景技术
相关领域中,双机热备作为一种服务器高可用的解决方案,在主机处于工作状态时,可以通过备机对主机的状态进行监测,在主机发生异常时,比如主机发生宕机,或者是通讯连接异常的情况下,备机可以替代主机对外提供服务。
现有技术中,在备机监测主机状态时,使用的为单心跳检测方式,即主机和备机之间通过一个网络连接以进行心跳事件的检测,且现有的技术中要么采用与操作系统强相关的协议,要么采用可靠性较低的UDP协议,支持场景单一。比如采用keepalive协议的双机方案,虽然心跳效率高,但是强绑定了linux操作系统。采用UDP协议的双机方案,虽然可以支持更多操作系统以及网络场景,但是在非异地部署情况,心跳效率不是最高,且本身不可靠。
针对相关技术中心跳检测的可靠性较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种主机切换的方法、装置、存储介质及电子装置,以至少解决相关技术中心跳检测的可靠性较低的问题。
根据本发明的一个实施例,提供了一种主机切换的方法,包括:获取第一设备与第二设备之间的第一心跳事件,其中,所述第一设备为主机,所述第二设备为备机,所述第一心跳事件是所述第一设备与所述第二设备通过直连网络传输的心跳事件;在所述第一心跳事件异常的情况下,获取所述第一设备与所述第二设备之间的第二心跳事件,其中,所述第二心跳事件是所述第一设备与所述第二设备通过业务网络传输的心跳事件;在所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
可选地,在所述将所述第二设备切换为主机之后,所述方法还包括:在所述第一心跳事件恢复正常的情况下,在预设时间段内将所述第一设备切换为主机;或者,在所述第二心跳事件恢复正常的情况下,在预设时间段内将所述第一设备切换为主机。
可选地,在预设时间段内将所述第一设备切换为主机,包括:获取所述预设时间段内所述第一设备和所述第二设备的CPU使用率;在所述第一设备和所述第二设备的CPU使用率小于或等于预设值的情况下,将所述第一设备切换为主机。
可选地,,所述方法还包括:在所述第二心跳事件正常的情况下,确定所述第一设备与所述第二设备之间的所述直连网络发生异常;将所述第一设备确定为主机,并上报独立心跳异常告警。
可选地,在所述获取第一设备与第二设备之间的第一心跳事件之前,所述方法还包括:所述第一设备接收双机配置信息,并将所述双机配置信息发送至所述第二设备;在所述第一设备和所述第二设备对所述双机配置信息检测通过的情况下,使用所述双机配置信息进行对所述第一设备和所述第二设备进行配置。
可选地,所述方法还包括:所述第一设备在预先缓存的检测结果中查询到与所述双机配置信息对应的第一检测结果,且所述第一检测结果表示检测通过的情况下,确定所述第一设备对所述双机配置信息检测通过;所述第二设备在预先缓存的检测结果中查询到与所述双机配置信息对应的第二检测结果,且所述第二检测结果表示检测通过的情况下,确定所述第二设备对所述双机配置信息检测通过。
可选地,所述第一设备接收双机配置信息,包括:所述第一设备的第一配置服务接收所述双机配置信息;所述第一设备将所述双机配置信息发送至所述第二设备,包括:所述第一设备的第一配置服务将所述双机配置信息发送至所述第二设备的第二配置服务。
可选地,所述第一设备在预先缓存的检测结果中查询与所述双机配置信息对应的第一检测结果,包括:所述第一设备的所述第一配置服务在预先缓存的检测结果中查询与所述双机配置信息对应的第一检测结果;所述第二设备在预先缓存的检测结果中查询与所述双机配置信息对应的第二检测结果,包括:所述第二设备的所述第二配置服务在预先缓存的检测结果中查询与所述双机配置信息对应的第二检测结果。
可选地,所述方法还包括:所述第一设备的所述第一配置服务在预先缓存的检测结果中未查询到所述第一检测结果的情况下,所述第一配置服务将所述双机配置信息发送至所述第一设备的第一管理服务,通过所述第一管理服务对所述双机配置信息进行检测;所述第二设备的所述第二配置服务在预先缓存的检测结果中未查询到所述第二检测结果的情况下,所述第二配置服务将所述双机配置信息发送至所述第二设备的第二管理服务,通过所述第二管理服务对所述双机配置信息进行检测。
可选地,使用所述双机配置信息进行对所述第一设备进行配置,包括:所述第一设备的第一管理服务向所述第一设备的第一数据同步服务和第一心跳服务发送所述双机配置信息,以使所述第一数据同步服务和所述第一心跳服务根据所述双机配置信息进行配置;使用所述双机配置信息进行对所述第二设备进行配置,包括:所述第二设备的第二管理服务向所述第二设备的第二数据同步服务和第二心跳服务发送所述双机配置信息,以使所述第二数据同步服务和所述第二心跳服务根据所述双机配置信息进行配置。
根据本发明的另一个实施例,提供了一种主机切换的装置,包括:第一获取模块,用于获取第一设备与第二设备之间的第一心跳事件,其中,所述第一设备为主机,所述第二设备为备机,所述第一心跳事件是所述第一设备与所述第二设备通过直连网络传输的心跳事件;第二获取模块,用于在所述第一心跳事件异常的情况下,获取所述第一设备与所述第二设备之间的第二心跳事件,其中,所述第二心跳事件是所述第一设备与所述第二设备通过业务网络传输的心跳事件;切换模块,用于在所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
根据本发明的另一个实施例,提供了一种主机切换的系统,包括:第一设备和第二设备通过直连网络传输第一心跳事件,所述第一设备为主机,所述第二设备为备机;所述第一设备和所述第二设备通过业务网络传输第二心跳事件;切换设备,用于在所述第一心跳事件异常,且所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤
通过本发明,在检测到主机与备机之间通过直连网络传输的第一心跳事件为异常的情况下,检测主机与备机之间通过业务网络传输的第二心跳事件,在第二心跳事件也同时为异常的情况下,才会确定主机处于异常状态,并将备机切换为主机,由此实现了通过两个网络对主机和备机之间的心跳事件进行检测的目的,可以解决现有技术中对心跳检测的可靠性较低问题,达到了提高心跳检测的可靠性的效果。
附图说明
图1是本发明实施例的一种主机切换的方法的移动终端的硬件结构框图;
图2是根据本发明实施例的主机切换的方法流程图;
图3是根据本发明实施例的可选的双机部署示意图;
图4是根据本发明实施例的可选的双机配置检测流程图;
图5是根据本发明实施例的可选的双机配置下发流程图;
图6是根据本发明实施例的可选的双机状态切换流程图;
图7是根据本发明实施例的主机切换的装置的结构框图;
图8是根据本发明实施例的主机切换的系统结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种主机切换的方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的主机切换的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的图像类型的确定方法,图2是根据本发明实施例的主机切换的方法流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取第一设备与第二设备之间的第一心跳事件,其中,所述第一设备为主机,所述第二设备为备机,所述第一心跳事件是所述第一设备与所述第二设备通过直连网络传输的心跳事件;
其中,第一设备是主机,第二设备是备机,如图3所示是根据本发明实施例的双机部署示意图,可以用网线连接主机的一个网口与备机的一个网口,用于组建一个端对端的直连网络,在直连网络正常的场景下优先使用直连网络进行第一心跳事件的检测。
步骤S204,在所述第一心跳事件异常的情况下,获取所述第一设备与所述第二设备之间的第二心跳事件,其中,所述第二心跳事件是所述第一设备与所述第二设备通过业务网络传输的心跳事件;
其中,如图3中所示,可以将主机与备机接入到业务网络,业务网络除了进行业务数据传输外,还可以传输第二心跳事件。在检测到第一心跳事件异常的情况下,可以通过业务网络获取第二心跳事件。
步骤S206,在所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
其中,在确定通过业务网络获取第二心跳事件异常的情况下,将备机切换为主机,也就是将第二设备由备机切换为主机。
通过上述步骤,在检测到主机与备机之间通过直连网络传输的第一心跳事件为异常的情况下,检测主机与备机之间通过业务网络传输的第二心跳事件,在第二心跳事件也同时为异常的情况下,才会确定主机处于异常状态,并将备机切换为主机,由此实现了通过两个网络对主机和备机之间的心跳事件进行检测的目的,可以解决现有技术中心跳检测可靠性较低的问题,达到了提高心跳检测的可靠性的效果。
可选地,上述步骤的执行主体可以为终端等,但不限于此。
作为一个可选的实施方式,第一心跳事件是第一设备与第二设备通过直连网络传输的心跳事件,第二心跳事件是第一设备与第二设备通过业务网络传输的心跳事件。根据不同的组网条件,可同时组建第一心跳和第二心跳,也可独立组建第一心跳或者第二心跳。当同时组建第一心跳及第二心跳时,在第一心跳事件异常的情况下,获取第一设备与第二设备之间的第二心跳事件,在第二心跳事件也异常的情况下,将第二设备切换为主机,否则不进行切换。而当只组建第一心跳或者第二心跳时,则只要心跳异常,则将第二设备切换为主机。以此解决双机热备方法组网条件单一,部署形态单一,心跳检测可靠性较低的问题,进而适用在不同组网条件下,选择最优的心跳检测方案,提高心跳检测可靠性的效果。
作为一个可选的实施方式,如图3所示,用网线将主机的一个网口与备机的一个网口连接,用于组建一个端对端的直连网络,在此直连网络上,进行心跳检测,数据同步,在直连网络正常的场景下优先使用直连网络进行心跳检测与数据同步,网络效率最高。此外,主机与备机还可以接入业务网络中,该业务网络除了进行业务数据外,也可为双机提供心跳事件检测,数据同步服务,其承担双机服务的优先级低于直连网络,在直连网络异常或者不支持直连网络的场景下,接替直连网络保持双机通信,正是因为这种机制存在,可以大大提高双机部署的灵活性以及运行的高可用性。
通过心跳服务的心跳事件检测对端机是否存活,将心跳事件异常作为主备机切换的条件。在支持双心跳的场景下,默认采集通过网口直连的第一心跳事件,当收到网口直连的第一心跳事件异常时,会采集到通过业务网络的第二心跳事件。如果业务网络的心跳也出现异常,则说明主机出现异常,则发生主备机的切换。
可选地,在所述将所述第二设备切换为主机之后,所述方法还包括:在所述第一心跳事件恢复正常的情况下,在预设时间段内将所述第一设备切换为主机;或者,在所述第二心跳事件恢复正常的情况下,在预设时间段内将所述第一设备切换为主机。
作为一个可选的实施方式,在检测到第一心跳事件异常的情况下,检测到第二心跳事件也发生了异常,可以将备机切换为主机,也就是将第二设备由备机切换为主机,第一设备切换为备机。在第一心跳事件或者在第二心跳事件恢复正常后,默认并不会立即将第一设备(原主机)切换为工作状态,而是会选择在预设时间段内进行状态的切换。在检测到第一心跳事件恢复正常的情况下,可以在预设时间段内将第一备机切换为主机,预设时间段可以选择凌晨等业务人员非高频使用系统的时段,比如可以选择凌晨1点到凌晨4点进行双机状态切换,时间段的格式可以是01:00~04:00。在检测到第二心跳事件恢复正常的情况下,也可以在预设时间段内将第一备机切换为主机。
可选地,在预设时间段内将所述第一设备切换为主机,包括:获取所述预设时间段内所述第一设备和所述第二设备的CPU使用率;在所述第一设备和所述第二设备的CPU使用率小于或等于预设值的情况下,将所述第一设备切换为主机。
作为一个可选的实施方式,在第一心跳事件或者在第二心跳事件恢复正常后,默认并不会立即将第一设备(原主机)切换为工作状态,而是会选择在预设时间段内进行状态的切换。预设时间段可以选择凌晨等业务人员非高频使用系统的时段,比如可以选择凌晨1点到凌晨4点进行双机状态切换。在预设时间段内,主机和备机的管理服务会综合核心服务CMS及数据库的CPU使用率选择时间点进行切换,比如在预设时段内当主机和备机的核心服务CMS及数据库的CPU使用率均小于50%时进行切换,如果在预设时间段内,主机和备机的CPU使用率很高,达不到切换条件,双机管理服务会在下一天同一时间段再次尝试进行状态切换,除非这个过程中备机出现异常或者主机模式是抢占式。心跳保活协议包括但不限于TCP、UDP、HTTPS/HTTP、WEBSOCKET。
可选地,在所述第二心跳事件正常的情况下,确定所述第一设备与所述第二设备之间的所述直连网络发生异常;将所述第一设备确定为主机,并上报独立心跳异常告警。
作为一个可选的实施方式,通过心跳服务检测对端机是否存活,将心跳事件异常作为主备机切换的条件。在支持双心跳的场景,可以先采集通过网口直连的第一心跳事件,当收到网口直连的第一心跳事件异常时,可以采集通过业务网络传输的第二心跳事件。如果业务网络传输的第二心跳事件保活正常,则双机状态不变更,上报独立心跳异常告警事件,上述情况可能是网口直连网络的网线松动或者网口损坏等。
可选地,在所述获取第一设备与第二设备之间的第一心跳事件之前,所述方法还包括:所述第一设备接收双机配置信息,并将所述双机配置信息发送至所述第二设备;在所述第一设备和所述第二设备对所述双机配置信息检测通过的情况下,使用所述双机配置信息进行对所述第一设备和所述第二设备进行配置。
作为一个可选的实施方式,如图4是根据本发明实施例的双机配置检测流程图,第一设备可以是主机,第二设备可以是备机,主机配置服务接收客户端发送的双机配置信息,其中的双机配置信息包括但不限于以下信息:
当前模式:主模式/备模式。心跳模式:双心跳/独立心跳/业务心跳。主机策略:抢占式/自适应,默认自适应。虚拟主机IP,主机IP,主机独立心跳IP,主机业务心跳IP,备机IP,备机独立心跳IP,备机业务心跳IP,双机配置账号,双机配置账号密码。
主机配置服务将上述双机配置信息发送至主机管理服务进行双机配置检测。主机配置服务在接收到双机配置信息后,将双机配置信息发送至备机的配置服务,备机配置服务将双机配置信息发送至备机管理服务进行双机配置检测,在主机和备机的双机配置信息均检测通过的情况下,使用检测通过的双机配置信息对主机和备机进行配置,双机配置信息可以包括双机配置的账户名和密码是否正确,双机业务IP地址之间的网络是否连通,双机心跳IP地址之间的网络是否连通,双机核心服务是否准备就绪,双机虚IP是否可以使用。在进行双机配置时,主机可以下发双机配置信息,如果配置服务没有查到检测结果会优先进行双机配置信息的检测,以最大可能保障双机配置信息的正确,当检测通过时,则下发双机配置信息到主机管理服务及备机配置服务,备机配置服务收到双机配置信息后,也会与主机一样,先查找检测缓存信息,不存在时先进行检测,检测通过后进行双机配置下发,热备配置。
可选地,所述第一设备在预先缓存的检测结果中查询到与所述双机配置信息对应的第一检测结果,且所述第一检测结果表示检测通过的情况下,确定所述第一设备对所述双机配置信息检测通过;所述第二设备在预先缓存的检测结果中查询到与所述双机配置信息对应的第二检测结果,且所述第二检测结果表示检测通过的情况下,确定所述第二设备对所述双机配置信息检测通过。
作为一个可选的实施方式,第一设备是主机,第二设备是备机,在主机的双机配置信息检测通过的后,主机会缓存检测结果,以便配置提交时直接复用本次的检测结果,主机配置服务收到双机配置信息的检测请求后,向备机的配置服务发起双机配置信息的检测请求,而备机收到双机配置信息后,与主机一样向备机管理服务发起检测请求,同主机一样,备机也会对双机配置信息的检测结果进行缓存。主机在预先缓存的检测结果中,可以查询到与双机配置信息对应的,用于表示检测通过的第一检测结果的情况下,可以确定主机对双机配置信息的检测通过。同样的,备机在预先缓存的检测结果中,可以查询到与双机配置信息对应的,用于表示双机配置信息检测通过的第二检测结果的情况下,可以确定备机对双机配置信息的检测通过。
可选地,所述第一设备接收双机配置信息,包括:所述第一设备的第一配置服务接收所述双机配置信息;所述第一设备将所述双机配置信息发送至所述第二设备,包括:所述第一设备的第一配置服务将所述双机配置信息发送至所述第二设备的第二配置服务。
作为一个可选的实施方式,第一设备是主机,第二设备是备机,如图4所示,主机配置服务收到双机配置信息的检测请求后,向备机的备机配置服务发起双机配置检测请求,而备机配置服务机收到双机配置信息后,会向备机管理服务发起检测请求。
可选地,所述第一设备在预先缓存的检测结果中查询与所述双机配置信息对应的第一检测结果,包括:所述第一设备的所述第一配置服务在预先缓存的检测结果中查询与所述双机配置信息对应的第一检测结果;所述第二设备在预先缓存的检测结果中查询与所述双机配置信息对应的第二检测结果,包括:所述第二设备的所述第二配置服务在预先缓存的检测结果中查询与所述双机配置信息对应的第二检测结果。
作为一个可选的实施方式,第一配置服务可以是主机配置服务,第二配置服务可以是备机配置服务,主机在双机配置信息检测通过后,可以在主机配置服务中预先缓存第一检测结果,以便配置提交时直接复用本次的检测结果,备机在双机配置信息检测通过后,会将第二检测结果预先缓存在备机配置服务中。在对双机配置检测结果进行查询时,主机可以在主机配置服务中查询第一检测结果,备机可以在备机配置服务中查询第二检测结果。
可选地,所述第一设备的所述第一配置服务在预先缓存的检测结果中未查询到所述第一检测结果的情况下,所述第一配置服务将所述双机配置信息发送至所述第一设备的第一管理服务,通过所述第一管理服务对所述双机配置信息进行检测;所述第二设备的所述第二配置服务在预先缓存的检测结果中未查询到所述第二检测结果的情况下,所述第二配置服务将所述双机配置信息发送至所述第二设备的第二管理服务,通过所述第二管理服务对所述双机配置信息进行检测。
作为一个可选的实施方式,第一设备可以是主机,第二设备可以是备机,第一管理服务可以是主机管理服务,第二管理服务可以是备机管理服务,第一配置服务可以是主机配置服务,第二配置服务可以是备机配置服务,如图5是根据本发明实施例的双机配置下发流程图,在进行双机配置时,主机可以在主机配置服务预先缓存的检测结果中查询是否存在第一检测结果,如果没有查询到第一检测结果,主机配置服务会将双机配置信息发送至主机管理服务,通过主机管理服务进行如图4中的双机配置信息检测。如图5所示,在备机进行双机配置时,同样会在备机配置服务预先缓存的检测结果中查询第二检测结果,如果没有查询到第二检测结果,备机配置服务会将双机配置信息发送至备机管理服务,通过备机管理服务进行如图4中的双机配置信息检测。
可选地,使用所述双机配置信息进行对所述第一设备进行配置,包括:所述第一设备的第一管理服务向所述第一设备的第一数据同步服务和第一心跳服务发送所述双机配置信息,以使所述第一数据同步服务和所述第一心跳服务根据所述双机配置信息进行配置;使用所述双机配置信息进行对所述第二设备进行配置,包括:所述第二设备的第二管理服务向所述第二设备的第二数据同步服务和第二心跳服务发送所述双机配置信息,以使所述第二数据同步服务和所述第二心跳服务根据所述双机配置信息进行配置。
作为一个可选的实施方式,第一设备可以是主机,第一管理服务可以是主机管理服务,第一数据同步服务可以是主机数据同步服务,第一心跳服务可以是主机心跳服务,第二设备可以是备机,第二管理服务可以是备机管理服务,第二数据同步服务可以是备机数据同步服务,第二心跳服务可以是备机心跳服务,如图5所示,在主机配置服务可以查询到预先缓存的第一检测到结果的情况下,使用检测通过的双机配置信息对主机进行双机配置,通过主机管理服务向主机数据同步服务和主机心跳服务进行配置下发,以根据双机配置信息配置主机数据同步服务和主机心跳服务。在备机配置服务可以查询到预先缓存的第二检测到结果的情况下,使用检测通过的双机配置信息对备机进行双机配置,通过备机管理服务向备机数据同步服务和备机心跳服务进行配置下发,以根据双机配置信息配置备机数据同步服务和备机心跳服务。
双机配置和主备机切换流程说明如下:
两台部署完成的设备,选择任意一台进行双机配置,主机和备机的双机管理服务在收到双机有关的配置后,根据双机配置信息,识别当前机器的主备模式,并通过数据同步服务将双机配置同步到对端机上。对端机上收到双机配置信息后,也同样根据双机配置信息识别当前机器的主备模式,进行后续数据同步及心跳检测。
在双机的配置阶段,主要进行双机配置信息的同步,数据库基础数据的同步,系统配置的同步。在双机的运行阶段进行文件同步,数据库里的数据则通过数据库主从复制进行同步,数据同步服务使用的协议类型包括但不限于SFTP、FTPS、FTP、TCP、UDP、HTTPS/HTTP、WEBSOCKET。
通过心跳服务检测对端机是否存活,可以将心跳超时、异常作为主备机切换的条件。在支持双心跳的场景,默认采集通过网口直连的心跳事件,当收到网口直连的心跳异常时,会采集到通过业务网络的心跳事件。如果业务网络的心跳保活正常,则双机状态不变更,上报独立心跳异常告警事件,此时可能是网口直连网线松动或者网口损坏等。如果业务网络的心跳也出现异常,则说明主机出现异常,则发生主备机的切换。心跳恢复正常后,默认并不会立即将原主机切换为工作状态,双机管理服务会默认选择在凌晨等业务人员非高频使用系统的时段进行状态切换,当然也可以配置这个时间段,时间段的格式如01:00~04:00,代表凌晨1点到凌晨4点进行双机状态切换。在这个时间段内,双机管理服务会综合核心服务CMS及数据库的CPU使用率选择时间点进行切换,比如在这个时段内当它们的CPU使用率均小于50%时进行切换,如果在这个时间段内,它们的cpu使用率很高,达不到切换条件,双机管理服务在下一天这个时间段再次尝试进行状态切换,除非切换过程中备机出现异常或者主机模式是抢占式。心跳保活协议包括但不限于TCP、UDP、HTTPS/HTTP、WEBSOCKET。
如图6所示是根据本发明实施例的可选的双机状态切换流程图,双机切换流程如下:
1.主机和备机的双机管理服务内部均会启动一个状态监控线程,状态监控线程会不停的对本机的双机模式进行识别,根据不同的主机模式进行不同流程的状态识别。
2.在主模式下,双机管理服务自检到业务核心服务CMS、数据库服务进程(可配置)挂掉,会停止所有业务服务,触发主机切备机,清除虚IP,并向备机下发主备切换指令,备机在收到主机的主备切换指令下,首先进行虚IP检测,检测虚IP不存在时,执行主备切换指令。
3.在备模式下,可以支持三种心跳模式,即双心跳模式、独立心跳模式和业务心跳模式,其中的双心跳模式会同时检测独立心跳事件和业务心跳事件,双机管理服务自检到心跳异常事件后,则对主机的虚IP进行检测,在主机的虚IP不存在的情况下,则执行主备切换指令。
本发明不依赖于操作系统强绑定的协议,能够跨平台。不完全依赖物理设备接口,部署地点灵活,支持异地。即支持一体机,又支持虚拟机的部署方案。与单心跳相比,双心跳机制,性能消耗可以忽略,功能实现与运维成本接近,但可靠性上更强,能够有效避免脑裂现象。部署网络灵活,根据不同的网络策略,可以选择双心跳、独立心跳、业务心跳,且支持无线网络。本发明采用双心跳的方式,具有更好的可靠性,且支持异地,支持有线,无线等网络模式。可以跨平台,外部条件依赖少。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种主机切换的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的主机切换的装置的结构框图,如图7所示,该装置包括:第一获取模块72,用于获取第一设备与第二设备之间的第一心跳事件,其中,所述第一设备为主机,所述第二设备为备机,所述第一心跳事件是所述第一设备与所述第二设备通过直连网络传输的心跳事件;第二获取模块74,用于在所述第一心跳事件异常的情况下,获取所述第一设备与所述第二设备之间的第二心跳事件,其中,所述第二心跳事件是所述第一设备与所述第二设备通过业务网络传输的心跳事件;切换模块76,用于在所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
可选地,上述装置还用于在所述将所述第二设备切换为主机之后,在所述第一心跳事件恢复正常的情况下,在预设时间段内将所述第一设备切换为主机;在所述将所述第二设备切换为主机之后,在所述第二心跳事件恢复正常的情况下,在预设时间段内将所述第一设备切换为主机。
可选地,上述装置还用于获取所述预设时间段内所述第一设备和所述第二设备的CPU使用率;在所述第一设备和所述第二设备的CPU使用率小于或等于预设值的情况下,将所述第一设备切换为主机。
可选地,上述装置还用于在所述第二心跳事件正常的情况下,确定所述第一设备与所述第二设备之间的所述直连网络发生异常;将所述第一设备确定为主机,并上报独立心跳异常告警。
可选地,在所述获取第一设备与第二设备之间的第一心跳事件之前,上述第一设备还用于接收双机配置信息,并将所述双机配置信息发送至所述第二设备;在对所述双机配置信息检测通过的情况下,使用所述双机配置信息进行对所述第一设备进行配置;所述第二设备还用于在对所述双机配置信息检测通过的情况下,使用所述双机配置信息进行对所述第二设备进行配置。
可选地,上述第一设备还用于在预先缓存的检测结果中查询到与所述双机配置信息对应的第一检测结果,且所述第一检测结果表示检测通过的情况下,确定所述第一设备对所述双机配置信息检测通过;上述第二设备还用于在预先缓存的检测结果中查询到与所述双机配置信息对应的第二检测结果,且所述第二检测结果表示检测通过的情况下,确定所述第二设备对所述双机配置信息检测通过。
可选地,上述第一设备的第一配置服务还用于接收所述双机配置信息;上述第一设备的第一配置服务还用于将所述双机配置信息发送至所述第二设备的第二配置服务。
可选地,上述第一设备的第一配置服务还用于在预先缓存的检测结果中查询与所述双机配置信息对应的第一检测结果;上述第二设备的第二配置服务还用于在预先缓存的检测结果中查询与所述双机配置信息对应的第二检测结果。
可选地,上述第一设备的第一配置服务还用于在预先缓存的检测结果中未查询到所述第一检测结果的情况下,将所述双机配置信息发送至所述第一设备的第一管理服务,通过所述第一管理服务对所述双机配置信息进行检测;上述第二设备的第二配置服务还用于在预先缓存的检测结果中未查询到所述第二检测结果的情况下,将所述双机配置信息发送至所述第二设备的第二管理服务,通过所述第二管理服务对所述双机配置信息进行检测。
可选地,上述第一设备的第一管理服务还用于向所述第一设备的第一数据同步服务和第一心跳服务发送所述双机配置信息,以使所述第一数据同步服务和所述第一心跳服务根据所述双机配置信息进行配置;上述第二设备的第二管理服务还用于向所述第二设备的第二数据同步服务和第二心跳服务发送所述双机配置信息,以使所述第二数据同步服务和所述第二心跳服务根据所述双机配置信息进行配置。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
图8是根据本发明实施例的主机切换的系统结构框图,如图8所示,该系统包括:第一设备和第二设备通过直连网络传输第一心跳事件,所述第一设备为主机,所述第二设备为备机;所述第一设备和所述第二设备通过业务网络传输第二心跳事件;切换设备,用于在所述第一心跳事件异常,且所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
可选地,上述第一设备包括第一管理服务,第一配置服务,第一数据同步服务和第一心跳服务,其中,第一管理服务与第一配置服务、第一数据同步服务和第一心跳服务连接;第一配置服务,用于从客户端接收双机配置检测请求和双机配置请求,双机配置检测请求和双机配置请求中携带双机配置信息,第一配置服务还用于将接收到的双机配置信息发送至第一管理服务并进行双机状态的展示;第一管理服务,用于接收双机配置信息,对双机配置信息进行检测,在检测通过的情况下将双机配置信息同步到第一数据同步服务和第一心跳服务;第一数据同步服务,用于接收第一管理服务的发送的双机配置信息以及数据同步指令,进行数据同步;第一心跳服务,用于接收第一管理服务发送的双机配置信息,进行心跳检测以及上传心跳事件。
可选地,上述第二设备包括第二管理服务,第二配置服务,第二数据同步服务和第二心跳服务,其中,第二管理服务与第二配置服务、第二数据同步服务和第二心跳服务连接;第二配置服务,用于从上述第一配置服务接收双机配置检测请求和双机配置请求,双机配置检测请求和双机配置请求中携带双机配置信息,第二配置服务还用于将接收到的双机配置信息发送至第二管理服务;第二管理服务,用于接收双机配置信息,对双机配置信息进行检测,在检测通过的情况下将双机配置信息同步到第二数据同步服务和第二心跳服务;第二数据同步服务,用于接收第二管理服务的发送的双机配置信息以及数据同步指令,进行数据同步;第二心跳服务,用于接收第二管理服务发送的双机配置信息,进行心跳检测以及上传心跳事件。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取第一设备与第二设备之间的第一心跳事件,其中,所述第一设备为主机,所述第二设备为备机,所述第一心跳事件是所述第一设备与所述第二设备通过直连网络传输的心跳事件;
S2,在所述第一心跳事件异常的情况下,获取所述第一设备与所述第二设备之间的第二心跳事件,其中,所述第二心跳事件是所述第一设备与所述第二设备通过业务网络传输的心跳事件;
S3,在所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一设备与第二设备之间的第一心跳事件,其中,所述第一设备为主机,所述第二设备为备机,所述第一心跳事件是所述第一设备与所述第二设备通过直连网络传输的心跳事件;
S2,在所述第一心跳事件异常的情况下,获取所述第一设备与所述第二设备之间的第二心跳事件,其中,所述第二心跳事件是所述第一设备与所述第二设备通过业务网络传输的心跳事件;
S3,在所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种主机切换的方法,其特征在于,包括:
获取第一设备与第二设备之间的第一心跳事件,其中,所述第一设备为主机,所述第二设备为备机,所述第一心跳事件是所述第一设备与所述第二设备通过直连网络传输的心跳事件;
在所述第一心跳事件异常的情况下,获取所述第一设备与所述第二设备之间的第二心跳事件,其中,所述第二心跳事件是所述第一设备与所述第二设备通过业务网络传输的心跳事件;
在所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
2.根据权利要求1所述的方法,其特征在于,在所述将所述第二设备切换为主机之后,所述方法还包括:
在所述第一心跳事件恢复正常的情况下,在预设时间段内将所述第一设备切换为主机;或者,
在所述第二心跳事件恢复正常的情况下,在预设时间段内将所述第一设备切换为主机。
3.根据权利要求2所述的方法,其特征在于,在预设时间段内将所述第一设备切换为主机,包括:
获取所述预设时间段内所述第一设备和所述第二设备的CPU使用率;
在所述第一设备和所述第二设备的CPU使用率小于或等于预设值的情况下,将所述第一设备切换为主机。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二心跳事件正常的情况下,确定所述第一设备与所述第二设备之间的所述直连网络发生异常;
将所述第一设备确定为主机,并上报独立心跳异常告警。
5.根据权利要求1所述的方法,其特征在于,在所述获取第一设备与第二设备之间的第一心跳事件之前,所述方法还包括:
所述第一设备接收双机配置信息,并将所述双机配置信息发送至所述第二设备;
在所述第一设备和所述第二设备对所述双机配置信息检测通过的情况下,使用所述双机配置信息进行对所述第一设备和所述第二设备进行配置。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第一设备在预先缓存的检测结果中查询到与所述双机配置信息对应的第一检测结果,且所述第一检测结果表示检测通过的情况下,确定所述第一设备对所述双机配置信息检测通过;
所述第二设备在预先缓存的检测结果中查询到与所述双机配置信息对应的第二检测结果,且所述第二检测结果表示检测通过的情况下,确定所述第二设备对所述双机配置信息检测通过。
7.根据权利要求6所述的方法,其特征在于,
所述第一设备接收双机配置信息,包括:所述第一设备的第一配置服务接收所述双机配置信息;
所述第一设备将所述双机配置信息发送至所述第二设备,包括:所述第一设备的第一配置服务将所述双机配置信息发送至所述第二设备的第二配置服务。
8.根据权利要求7所述的方法,其特征在于,
所述第一设备在预先缓存的检测结果中查询与所述双机配置信息对应的第一检测结果,包括:所述第一设备的所述第一配置服务在预先缓存的检测结果中查询与所述双机配置信息对应的第一检测结果;
所述第二设备在预先缓存的检测结果中查询与所述双机配置信息对应的第二检测结果,包括:所述第二设备的所述第二配置服务在预先缓存的检测结果中查询与所述双机配置信息对应的第二检测结果。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述第一设备的所述第一配置服务在预先缓存的检测结果中未查询到所述第一检测结果的情况下,所述第一配置服务将所述双机配置信息发送至所述第一设备的第一管理服务,通过所述第一管理服务对所述双机配置信息进行检测;
所述第二设备的所述第二配置服务在预先缓存的检测结果中未查询到所述第二检测结果的情况下,所述第二配置服务将所述双机配置信息发送至所述第二设备的第二管理服务,通过所述第二管理服务对所述双机配置信息进行检测。
10.根据权利要求5所述的方法,其特征在于,
使用所述双机配置信息进行对所述第一设备进行配置,包括:所述第一设备的第一管理服务向所述第一设备的第一数据同步服务和第一心跳服务发送所述双机配置信息,以使所述第一数据同步服务和所述第一心跳服务根据所述双机配置信息进行配置;
使用所述双机配置信息进行对所述第二设备进行配置,包括:所述第二设备的第二管理服务向所述第二设备的第二数据同步服务和第二心跳服务发送所述双机配置信息,以使所述第二数据同步服务和所述第二心跳服务根据所述双机配置信息进行配置。
11.一种主机切换的装置,其特征在于,包括:
第一获取模块,用于获取第一设备与第二设备之间的第一心跳事件,其中,所述第一设备为主机,所述第二设备为备机,所述第一心跳事件是所述第一设备与所述第二设备通过直连网络传输的心跳事件;
第二获取模块,用于在所述第一心跳事件异常的情况下,获取所述第一设备与所述第二设备之间的第二心跳事件,其中,所述第二心跳事件是所述第一设备与所述第二设备通过业务网络传输的心跳事件;
切换模块,用于在所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
12.一种主机切换的系统,其特征在于,应用于权利要求1至10中任一项所述的主机切换的方法,包括:
第一设备和第二设备通过直连网络传输第一心跳事件,所述第一设备为主机,所述第二设备为备机;
所述第一设备和所述第二设备通过业务网络传输第二心跳事件;
切换设备,用于在所述第一心跳事件异常,且所述第二心跳事件异常的情况下,将所述第二设备切换为主机。
13.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述程序可被终端设备或计算机运行时执行所述权利要求1至10任一项中所述的方法。
14.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至10任一项中所述的方法。
CN202210268591.5A 2022-03-17 2022-03-17 主机切换的方法、装置、存储介质及电子装置 Pending CN114679399A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210268591.5A CN114679399A (zh) 2022-03-17 2022-03-17 主机切换的方法、装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210268591.5A CN114679399A (zh) 2022-03-17 2022-03-17 主机切换的方法、装置、存储介质及电子装置

Publications (1)

Publication Number Publication Date
CN114679399A true CN114679399A (zh) 2022-06-28

Family

ID=82073671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210268591.5A Pending CN114679399A (zh) 2022-03-17 2022-03-17 主机切换的方法、装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN114679399A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102932118A (zh) * 2012-11-05 2013-02-13 中国铁道科学研究院 一种双机主备裁决的方法及系统
CN103257350A (zh) * 2012-05-07 2013-08-21 中国交通通信信息中心 一种双机双工自动切换方法
WO2016173179A1 (zh) * 2015-04-29 2016-11-03 中兴通讯股份有限公司 一种数据库主备切换的方法及装置
CN112698991A (zh) * 2021-01-20 2021-04-23 北京锐马视讯科技有限公司 基于1比1心跳的双机热备系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257350A (zh) * 2012-05-07 2013-08-21 中国交通通信信息中心 一种双机双工自动切换方法
CN102932118A (zh) * 2012-11-05 2013-02-13 中国铁道科学研究院 一种双机主备裁决的方法及系统
WO2016173179A1 (zh) * 2015-04-29 2016-11-03 中兴通讯股份有限公司 一种数据库主备切换的方法及装置
CN112698991A (zh) * 2021-01-20 2021-04-23 北京锐马视讯科技有限公司 基于1比1心跳的双机热备系统和方法

Similar Documents

Publication Publication Date Title
EP3905590A1 (en) System and method for obtaining network topology, and server
US10200506B2 (en) Method, system and device for monitoring data
TW201944236A (zh) 任務處理方法、裝置及系統
CN111190747A (zh) 用于消息队列的消息丢失检测方法和装置
CN107919994B (zh) 实现网络服务双机热备的方法及服务器
WO2019068107A1 (en) PULSATION MONITORING FOR ENTERPRISE AND BROADBAND ACCESS DEVICES
CN108430116A (zh) 断网重连方法、介质、装置和计算设备
GB2407887A (en) Automatically modifying fail-over configuration of back-up devices
US20200145489A1 (en) Data storage method, storage server, and storage medium and system
CN113067810B (zh) 网络抓包方法、装置、设备和介质
CN104301407A (zh) 分布式监护系统中备份数据的方法和装置
CN110691398A (zh) 智能设备的网络交互方法、系统、设备及存储介质
CN112860408A (zh) 一种云真机中的进程保活方法、装置、系统及存储介质
CN113709247A (zh) 资源获取方法、装置、系统、电子设备及存储介质
CN113014573B (zh) Dns服务器的监控方法、系统、电子装置和存储介质
US20120324093A1 (en) Real-time data monitoring based on data push
CN112383414B (zh) 双机热备份快速切换方法及装置
US10992770B2 (en) Method and system for managing network service
CN114679399A (zh) 主机切换的方法、装置、存储介质及电子装置
JP6612151B2 (ja) ネットワーク機器監視装置
CN112787868B (zh) 一种信息同步的方法和装置
JP2010041604A (ja) ネットワーク管理方法
US11748205B2 (en) Network informed policy creation for optimizing multiple backup operations in a multiple source system
CN110932878A (zh) 一种分布式网络的管理方法、设备及系统
EP4030691A1 (en) Data processing method, device, and system

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