CN111064609A - 消息系统的主从切换方法、装置、电子设备及存储介质 - Google Patents

消息系统的主从切换方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111064609A
CN111064609A CN201911268899.4A CN201911268899A CN111064609A CN 111064609 A CN111064609 A CN 111064609A CN 201911268899 A CN201911268899 A CN 201911268899A CN 111064609 A CN111064609 A CN 111064609A
Authority
CN
China
Prior art keywords
agent
abnormal
machine
role
slave
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
CN201911268899.4A
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911268899.4A priority Critical patent/CN111064609A/zh
Publication of CN111064609A publication Critical patent/CN111064609A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供了一种消息系统的主从切换方法、装置、电子设备及存储介质。其中方法包括:监控代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识;根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色;在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机;将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。本发明实施例能够避免消息系统的吞吐量降低,避免造成系统崩溃的现象。

Description

消息系统的主从切换方法、装置、电子设备及存储介质
技术领域
本发明涉及数据处理技术领域,特别是涉及消息系统的主从切换方法、装置、电子设备及存储介质。
背景技术
消息系统是一个消息订阅和发布的系统,消息系统中包括代理机(Broker)。将消息的发布表述为生产,将消息的订阅表述为消费,将中间的存储称作代理机。生产者将消息生产出来,发给消息系统的代理机进行存储,消费者需要消费消息时,就从代理机中取出所需的消息。
消息系统是解耦各系统通信的基础分布式中间件,它的稳定与可靠直接关系着企业相关各系统的正常运行。在互联网系统环境下,对各系统的容灾提出了更严格的要求,主从互备是容灾中常见的部署方式。消息系统采用master/slave(主/从)的部署方式,针对一台主代理机设置至少一台从代理机。正常服务时,消息的生产和消费都在主代理机上完成,从机进行消息的备份,从而提高集群的可用性。
但是,当主代理机发生异常无法提供服务时,虽然消费者可连接从代理机进行消息消费,但是生产者无法连接从代理机进行消息生产。因此生产者生产的消息将无法顺利存储至原有的主代理机上,从而导致消息系统的吞吐量降低,甚至在无法顺利存储的消息数量较大时造成系统崩溃。
发明内容
本发明实施例的目的在于提供一种消息系统的主从切换方法、装置、电子设备及存储介质,以避免在主代理机发生异常时,消息系统的吞吐量降低,甚至造成系统崩溃的现象。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种消息系统的主从切换方法,所述消息系统中包括代理机,所述代理机的角色包括主代理机和从代理机,所述方法包括:
监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识;
根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色;
在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机;
将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
可选地,所述监控所述代理机的端口,确定所述代理机是否发生异常,包括:定时向所述代理机的端口发送端口检测命令;当连续预设次数未接收到所述代理机针对所述端口检测命令返回的响应消息时,确定所述代理机发生异常。
可选地,所述将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机,包括:从预设数据库保存的所述代理机的配置文件中,获取所述目标从代理机的配置文件,所述目标从代理机的配置文件中包括所述目标从代理机的角色;将所述目标从代理机的角色修改为主代理机,并利用修改后的配置文件覆盖所述目标从代理机自身保存的配置文件。
可选地,所述根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色,包括:从预设数据库保存的所述代理机的标识与角色的映射关系中,查询所述发生异常的代理机的标识对应的角色,作为所述发生异常的代理机的角色。
可选地,所述查询与所述发生异常的代理机对应的目标从代理机,包括:从预设数据库保存的主代理机与从代理机的映射关系中,查询所述发生异常的代理机对应的从代理机;当查询到的从代理机为多个时,从所述数据库保存的所述代理机的状态中,获取查询到的各从代理机的状态;从查询到的从代理机中选取一个状态为正常的从代理机,作为所述目标从代理机。
可选地,在所述根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色之后,还包括:在所述发生异常的代理机的角色为从代理机时,从预设数据库保存的所述代理机的状态中,获取所述发生异常的代理机的状态,将所述发生异常的代理机的状态修改为异常。
在本发明实施的第二方面,还提供了一种消息系统的主从切换装置,所述消息系统中包括代理机,所述代理机的角色包括主代理机和从代理机,所述装置包括:
监控模块,用于监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识;
第一查询模块,用于根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色;
第二查询模块,用于在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机;
切换模块,用于将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
可选地,所述监控模块包括:发送单元,用于定时向所述代理机的端口发送端口检测命令;确定单元,用于当连续预设次数未接收到所述代理机针对所述端口检测命令返回的响应消息时,确定所述代理机发生异常。
可选地,所述切换模块包括:文件获取单元,用于从预设数据库保存的所述代理机的配置文件中,获取所述目标从代理机的配置文件,所述目标从代理机的配置文件中包括所述目标从代理机的角色;覆盖单元,用于将所述目标从代理机的角色修改为主代理机,并利用修改后的配置文件覆盖所述目标从代理机自身保存的配置文件。
可选地,所述第一查询模块,具体用于从预设数据库保存的所述代理机的标识与角色的映射关系中,查询所述发生异常的代理机的标识对应的角色,作为所述发生异常的代理机的角色。
可选地,所述第二查询模块包括:查询单元,用于从预设数据库保存的主代理机与从代理机的映射关系中,查询所述发生异常的代理机对应的从代理机;状态获取单元,用于当查询到的从代理机为多个时,从所述数据库保存的所述代理机的状态中,获取查询到的各从代理机的状态;选取单元,用于从查询到的从代理机中选取一个状态为正常的从代理机,作为所述目标从代理机。
可选地,所述装置还包括:修改模块,用于在所述发生异常的代理机的角色为从代理机时,从预设数据库保存的所述代理机的状态中,获取所述发生异常的代理机的状态,将所述发生异常的代理机的状态修改为异常。
在本发明实施的又一方面,还提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的方法。
本发明实施例提供的消息系统的主从切换方法、装置、电子设备及存储介质,监控代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识;根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色;在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机;将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。由此可知,本发明实施例中能够通过监控代理机的端口确定代理机是否发生异常,在主代理机发生异常时,将该主代理机对应的目标从代理机的角色切换为主代理机,切换后生产者可以连接切换后的主代理机进行消息生产,消费者可以连接切换后的主代理机进行消息消费,因此切换后的主代理机能够代替发生异常的主代理机继续提供生产和消费服务,从而能够避免消息系统的吞吐量降低,避免造成系统崩溃的现象。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中的一种系统架构图。
图2为本发明实施例中的一种消息系统的主从切换方法的步骤流程图。
图3为本发明实施例中的另一种消息系统的主从切换方法的步骤流程图。
图4为本发明实施例中的一种消息系统的主从切换装置的结构框图。
图5为本发明实施例中的另一种消息系统的主从切换装置的结构框图。
图6为本发明实施例中的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
消息系统中包括多个代理机,代理机的角色可以包括主代理机和从代理机两种。其中可以包括至少一个主代理机,每个主代理机可以对应至少一个从代理机。本发明实施例中要对消息系统的各代理机进行监控,并在监控到主代理机发生异常时,能够将发生异常的代理机对应的目标从代理机的角色切换为主代理机。上述监控、切换角色等过程可以由外部系统实现,外部系统是指除消息系统之外的系统。图1为本发明实施例中的一种系统架构图。
如图1所示,消息系统中可以包括名称服务器(Name Server)、主代理机(MasterBroker)和与主代理机对应的从代理机(Slave Broker)。其中,名称服务器可以对接生产者和消费者,可以提供路由和负载均衡作用,当有生产者或消费者连接名称服务器时,名称服务器会选择一台主代理机,随后生产者和消费者就与主代理机建立起长连接,生产者直接将消息发到主代理机,消费者从主代理机获取消息。主代理机可以向名称服务器进行心跳上报,以便名称服务器根据主代理机的心跳确定主代理机是否正常。主代理机还可以向从代理机进行主备复制,以便将主代理机中存储的生产者生产的消息备份到从代理机中。
如图1所示,外部系统可以包括监控系统、自愈系统和数据库。监控系统可以对消息系统中的代理机(主代理机和从代理机)的端口进行监控,并在监控到代理机发生异常后向自愈系统传递报警标识。自愈系统可以从数据库中查询报警标识是否对应主代理机(Master Broker),并在报警标识对应主代理机时,将发生异常的代理机对应的从代理机切换为主代理机。
其中,消息系统可以为ActiveMQ、RocketMQ,等等。监控系统可以为Zabbix、Promethus、open-falcon,等等。数据库可以是关系型数据库,如Oracle、MySQL等,也可以是CMDB(Configuration Management Database,配置管理数据库)等。
下面,对本发明实施例中的消息系统的主从切换方法进行详细介绍。
图2为本发明实施例中的一种消息系统的主从切换方法的步骤流程图。
本发明实施例中的消息系统的主从切换方法可以包括以下步骤:
步骤201,监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识。
通过图1所示的监控系统监控消息系统中各代理机的端口,从而确定各代理机是否发生异常。当监控到某台代理机发生异常后,获取发生异常的代理机的标识,触发生成携带该发生异常的代理机的标识的报警信息。监控系统可以将报警信息发送给图1所示的自愈系统,从而将发生异常的代理机的标识传递给自愈系统。
步骤202,根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色。
自愈系统在接收到报警信息后,根据发生异常的代理机的标识,从数据库中查询所述发生异常的代理机的角色。
步骤203,在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机。
自愈系统在查询到发生异常的代理机的角色为主代理机时,进而从数据库中查询与该发生异常的代理机对应的一个目标从代理机。
步骤204,将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
自愈系统查询到目标从代理机后,将该目标从代理机的角色切换为主代理机,并将切换后的角色通知给目标从代理机。目标从代理机在得知自身的角色被切换为主代理机后,重启消息系统相关的服务,重启服务后切换后的角色生效,也即该目标从代理机变为了一台主代理机,代替发生异常的主代理机继续提供服务。
本发明实施例中能够通过监控代理机的端口确定代理机是否发生异常,在主代理机发生异常时,将该主代理机对应的目标从代理机的角色切换为主代理机,切换后生产者可以连接切换后的主代理机进行消息生产,消费者可以连接切换后的主代理机进行消息消费,因此切换后的主代理机能够代替发生异常的主代理机继续提供生产和消费服务,从而能够避免消息系统的吞吐量降低,避免造成系统崩溃的现象。
图3为本发明实施例中的另一种消息系统的主从切换方法的步骤流程图。
本发明实施例中的消息系统的主从切换方法可以包括以下步骤:
步骤301,监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识。
步骤302,根据所述发生异常的代理机的标识,从预设数据库中查询所述发生异常的代理机的角色。
步骤303,判断所述发生异常的代理机的角色是否为主代理机。若是,则执行步骤304;若否,则执行步骤307。
步骤304,在所述发生异常的代理机的角色为主代理机时,从预设数据库中查询与所述发生异常的代理机对应的目标从代理机。
步骤305,将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
步骤306,在所述发生异常的代理机恢复正常后,将恢复正常的代理机的角色切换为从代理机,并将切换后的角色通知给所述恢复正常的代理机。
步骤307,在所述发生异常的代理机的角色为从代理机时,从预设数据库保存的所述代理机的状态中,获取所述发生异常的代理机的状态,将所述发生异常的代理机的状态修改为异常。
步骤308,在所述发生异常的代理机恢复正常后,从预设数据库保存的所述代理机的状态中,获取恢复正常的代理机的状态,将所述恢复正常的代理机的状态修改为正常。
在步骤301中,监控系统对消息系统中的各个代理机的端口分别进行监控,实时检测代理机是否发生异常。在一种可选实施方式中,监控所述代理机的端口,确定所述代理机是否发生异常的步骤可以包括:定时向所述代理机的端口发送端口检测命令;当连续预设次数未接收到所述代理机针对所述端口检测命令返回的响应消息时,确定所述代理机发生异常。其中,对于定时发送的时间间隔的具体数值,以及预设次数的具体数值,本领域技术人员可以根据实际经验设置任意适用的数值,本发明实施例对此不作限制。
比如,端口检测命令可以为telnet命令,命令格式可以为“telnet.IP地址.端口号”。监控系统中可以预先保存各代理机的IP(Internet Protocol,网络之间互联的协议)地址和端口号,当要向某个代理机发送端口检测命令时,可以获取该代理机的IP地址和端口号,并向该代理机发送“telnet.IP地址.端口号”命令。该代理机在接收到“telnet.IP地址.端口号”命令后,如果该代理机未发生异常,则该代理机的端口正常存活,该代理机将向监控系统返回响应消息,比如返回“200ok”消息;如果该代理机发生异常,则该代理机的端口掉线,该代理机将不会向监控系统返回响应消息。因此,如果监控系统接收到该代理机返回的“200ok”消息,则可以确定该代理机未发生异常;如果监控系统连续预设次数均未接收到该代理机返回的“200ok”消息,则可以确定该代理机发生异常。
如果监控系统确定出某个代理机发生异常,则会触发报警信息,并将报警信息传递给自愈系统。报警信息中可以包括发生异常的代理机的标识和报警内容。其中,标识可以为IP地址等能够唯一标识一台代理机的信息,报警内容可以为发生异常的指示信息,比如指示信息为“1”表示发生异常等。
自愈系统对接监控系统,实时获取监控系统发送的报警信息。自愈系统中包括多个执行机,其中的某个或某些执行机具有操作代理机的权限。自愈系统通过具有操作代理机的权限的执行机来对代理机进行操作。自愈系统将操作对应的修复脚本下发到具有操作代理机的权限的执行机,由该执行机执行修复脚本,具体可以执行以下步骤302~步骤307。
在步骤302中,自愈系统解析报警信息,得到发生异常的代理机的标识,根据该标识从数据库中查询发生异常的代理机的角色。在实现中,数据库中可以保存各代理机的标识与角色的映射关系。自愈系统从数据库保存的所述代理机的标识与角色的映射关系中,查询所述发生异常的代理机的标识对应的角色,作为所述发生异常的代理机的角色。
在步骤304中,如果步骤303中判断出发生异常的代理机的角色为主代理机,则为了保证消息系统能够继续正常运行,自愈系统可以从数据库中查询该发生异常的代理机对应的一台从代理机作为目标从代理机,将目标从代理机的角色切换为主代理机,以便代替发生异常的代理机继续提供主代理机的服务。
在实现中,数据库中可以保存主代理机与从代理机的映射关系,以及各代理机的状态,代理机的状态可以包括正常和异常两种。查询与所述发生异常的代理机对应的目标从代理机的步骤可以包括:从预设数据库保存的主代理机与从代理机的映射关系中,查询所述发生异常的代理机对应的从代理机;当查询到的从代理机为多个时,从所述数据库保存的所述代理机的状态中,获取查询到的各从代理机的状态,从查询到的多个从代理机中选取一个状态为正常的从代理机,作为所述目标从代理机;当查询到的从代理机为一个时,将查询到的从代理机作为目标从代理机。其中,从查询到的多个从代理机中选取一个状态为正常的从代理机的过程,可以为从查询到的多个从代理机中随机选取任意一个状态为正常的从代理机。
在步骤305中,自愈系统将目标从代理机的角色切换为主代理机,并将切换后的角色通知给目标从代理机。在实现中,数据库中可以保存各代理机的配置文件,各代理机自身也可以保存自身的配置文件。配置文件中可以包括代理机的角色等信息。自愈系统将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机的步骤可以包括:从预设数据库保存的所述代理机的配置文件中,获取所述目标从代理机的配置文件,所述目标从代理机的配置文件中包括所述目标从代理机的角色;将所述目标从代理机的角色修改为主代理机,并利用修改后的配置文件覆盖所述目标从代理机自身保存的配置文件。
目标从代理机在得知自身的角色被切换后,重启消息系统相关的服务,重启服务后该目标从代理机变为了一台主代理机。切换后的主代理机可以向名称服务器进行心跳上报,后续当有生产者或消费者连接名称服务器时,名称服务器会选择切换后的主代理机,随后生产者和消费者就与切换后的主代理机建立起长连接,生产者直接将消息发到切换后的主代理机,消费者从切换后的主代理机获取消息。
在步骤306中,维护人员可以对发生异常的代理机进行异常检测和修复,在修复成功后发生异常的代理机恢复正常。由于发生异常的代理机的角色为主代理机,而通常情况下主代理机为一台,因此在发生异常的代理机恢复正常后,自愈系统可以将恢复正常的代理机的角色切换为从代理机,并将切换后的角色通知给恢复正常的代理机,恢复正常的代理机即可按照从代理机的角色运行。与步骤305类似,自愈系统从预设数据库保存的所述代理机的配置文件中,获取所述恢复正常的代理机的配置文件;将恢复正常的代理机的角色修改为从代理机,并利用修改后的配置文件覆盖所述恢复正常的代理机自身保存的配置文件。
在步骤307中,如果步骤303中判断出所述发生异常的代理机的角色为从代理机,则对数据库中保存的该发生异常的代理机的状态进行更新。自愈系统从预设数据库保存的代理机的状态中,获取所述发生异常的代理机的状态,并将所述发生异常的代理机的状态修改为异常,从而保证代理机状态的准确性。
在步骤308中,维护人员可以对发生异常的代理机进行异常检测和修复,在修复成功后发生异常的代理机恢复正常。由于发生异常的代理机的角色为从代理机,因此在发生异常的代理机恢复正常后,自愈系统从预设数据库中获取恢复正常的代理机的状态,并将所述恢复正常的代理机的状态修改为正常。
本发明实施例能够在主代理机宕机不可用时,将从代理机提升为主代理机继续提供服务,减少因主代理机不可用导致的服务可靠性降低,提高消息系统的稳定性。
图4为本发明实施例中的一种消息系统的主从切换装置的结构框图。消息系统中包括代理机,所述代理机的角色包括主代理机和从代理机。
本发明实施例中的消息系统的主从切换装置可以包括以下模块:
监控模块401,用于监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识。
第一查询模块402,用于根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色。
第二查询模块403,用于在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机。
切换模块404,用于将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
图5为本发明实施例中的另一种消息系统的主从切换装置的结构框图。
本发明实施例中的消息系统的主从切换可以包括以下模块:
监控模块501,用于监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识。
第一查询模块502,用于根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色。
第二查询模块503,用于在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机。
切换模块504,用于将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
可选地,所述监控模块501包括:发送单元5011,用于定时向所述代理机的端口发送端口检测命令;确定单元5012,用于当连续预设次数未接收到所述代理机针对所述端口检测命令返回的响应消息时,确定所述代理机发生异常。
可选地,所述切换模块504包括:文件获取单元5041,用于从预设数据库保存的所述代理机的配置文件中,获取所述目标从代理机的配置文件,所述目标从代理机的配置文件中包括所述目标从代理机的角色;覆盖单元5042,用于将所述目标从代理机的角色修改为主代理机,并利用修改后的配置文件覆盖所述目标从代理机自身保存的配置文件。
可选地,所述第一查询模块502,具体用于从预设数据库保存的所述代理机的标识与角色的映射关系中,查询所述发生异常的代理机的标识对应的角色,作为所述发生异常的代理机的角色。
可选地,所述第二查询模块503包括:查询单元5031,用于从预设数据库保存的主代理机与从代理机的映射关系中,查询所述发生异常的代理机对应的从代理机;状态获取单元5032,用于当查询到的从代理机为多个时,从所述数据库保存的所述代理机的状态中,获取查询到的各从代理机的状态;选取单元5033,用于从查询到的从代理机中选取一个状态为正常的从代理机,作为所述目标从代理机。
可选地,所述装置还包括:修改模块505,用于在所述发生异常的代理机的角色为从代理机时,从预设数据库保存的所述代理机的状态中,获取所述发生异常的代理机的状态,将所述发生异常的代理机的状态修改为异常。
本发明实施例中能够通过监控代理机的端口确定代理机是否发生异常,在主代理机发生异常时,将该主代理机对应的目标从代理机的角色切换为主代理机,切换后生产者可以连接切换后的主代理机进行消息生产,消费者可以连接切换后的主代理机进行消息消费,因此切换后的主代理机能够代替发生异常的主代理机继续提供生产和消费服务,从而能够避免消息系统的吞吐量降低,避免造成系统崩溃的现象。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识;
根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色;
在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机;
将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
可选地,所述监控所述代理机的端口,确定所述代理机是否发生异常,包括:定时向所述代理机的端口发送端口检测命令;当连续预设次数未接收到所述代理机针对所述端口检测命令返回的响应消息时,确定所述代理机发生异常。
可选地,所述将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机,包括:从预设数据库保存的所述代理机的配置文件中,获取所述目标从代理机的配置文件,所述目标从代理机的配置文件中包括所述目标从代理机的角色;将所述目标从代理机的角色修改为主代理机,并利用修改后的配置文件覆盖所述目标从代理机自身保存的配置文件。
可选地,所述根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色,包括:从预设数据库保存的所述代理机的标识与角色的映射关系中,查询所述发生异常的代理机的标识对应的角色,作为所述发生异常的代理机的角色。
可选地,所述查询与所述发生异常的代理机对应的目标从代理机,包括:从预设数据库保存的主代理机与从代理机的映射关系中,查询所述发生异常的代理机对应的从代理机;当查询到的从代理机为多个时,从所述数据库保存的所述代理机的状态中,获取查询到的各从代理机的状态;从查询到的从代理机中选取一个状态为正常的从代理机,作为所述目标从代理机。
可选地,在所述根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色之后,还包括:在所述发生异常的代理机的角色为从代理机时,从预设数据库保存的所述代理机的状态中,获取所述发生异常的代理机的状态,将所述发生异常的代理机的状态修改为异常。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的消息系统的主从切换方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的消息系统的主从切换方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种消息系统的主从切换方法,其特征在于,所述消息系统中包括代理机,所述代理机的角色包括主代理机和从代理机,所述方法包括:
监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识;
根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色;
在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机;
将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
2.根据权利要求1所述的方法,其特征在于,所述监控所述代理机的端口,确定所述代理机是否发生异常,包括:
定时向所述代理机的端口发送端口检测命令;
当连续预设次数未接收到所述代理机针对所述端口检测命令返回的响应消息时,确定所述代理机发生异常。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机,包括:
从预设数据库保存的所述代理机的配置文件中,获取所述目标从代理机的配置文件,所述目标从代理机的配置文件中包括所述目标从代理机的角色;
将所述目标从代理机的角色修改为主代理机,并利用修改后的配置文件覆盖所述目标从代理机自身保存的配置文件。
4.根据权利要求1所述的方法,其特征在于,所述根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色,包括:
从预设数据库保存的所述代理机的标识与角色的映射关系中,查询所述发生异常的代理机的标识对应的角色,作为所述发生异常的代理机的角色。
5.根据权利要求1所述的方法,其特征在于,所述查询与所述发生异常的代理机对应的目标从代理机,包括:
从预设数据库保存的主代理机与从代理机的映射关系中,查询所述发生异常的代理机对应的从代理机;
当查询到的从代理机为多个时,从所述数据库保存的所述代理机的状态中,获取查询到的各从代理机的状态;
从查询到的从代理机中选取一个状态为正常的从代理机,作为所述目标从代理机。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色之后,还包括:
在所述发生异常的代理机的角色为从代理机时,从预设数据库保存的所述代理机的状态中,获取所述发生异常的代理机的状态,将所述发生异常的代理机的状态修改为异常。
7.一种消息系统的主从切换装置,其特征在于,所述消息系统中包括代理机,所述代理机的角色包括主代理机和从代理机,所述装置包括:
监控模块,用于监控所述代理机的端口,确定所述代理机是否发生异常,并在所述代理机发生异常后触发报警信息,所述报警信息包括发生异常的代理机的标识;
第一查询模块,用于根据所述发生异常的代理机的标识,查询所述发生异常的代理机的角色;
第二查询模块,用于在所述发生异常的代理机的角色为主代理机时,查询与所述发生异常的代理机对应的目标从代理机;
切换模块,用于将所述目标从代理机的角色切换为主代理机,并将切换后的角色通知给所述目标从代理机。
8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如权利要求1-6中任一所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201911268899.4A 2019-12-11 2019-12-11 消息系统的主从切换方法、装置、电子设备及存储介质 Pending CN111064609A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911268899.4A CN111064609A (zh) 2019-12-11 2019-12-11 消息系统的主从切换方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911268899.4A CN111064609A (zh) 2019-12-11 2019-12-11 消息系统的主从切换方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN111064609A true CN111064609A (zh) 2020-04-24

Family

ID=70300623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911268899.4A Pending CN111064609A (zh) 2019-12-11 2019-12-11 消息系统的主从切换方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111064609A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732514A (zh) * 2020-12-22 2021-04-30 航天信息股份有限公司 基于分布式关系型数据库的Zabbix监控系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105072021A (zh) * 2015-08-11 2015-11-18 国电南瑞科技股份有限公司 一种调度自动化系统跨网段的消息转发方法
CN108092858A (zh) * 2018-02-07 2018-05-29 北京百度网讯科技有限公司 用于切换代理节点的方法及装置
CN109302319A (zh) * 2018-10-26 2019-02-01 许继集团有限公司 报文池分布式集群及其管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105072021A (zh) * 2015-08-11 2015-11-18 国电南瑞科技股份有限公司 一种调度自动化系统跨网段的消息转发方法
CN108092858A (zh) * 2018-02-07 2018-05-29 北京百度网讯科技有限公司 用于切换代理节点的方法及装置
CN109302319A (zh) * 2018-10-26 2019-02-01 许继集团有限公司 报文池分布式集群及其管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732514A (zh) * 2020-12-22 2021-04-30 航天信息股份有限公司 基于分布式关系型数据库的Zabbix监控系统

Similar Documents

Publication Publication Date Title
US10680874B2 (en) Network service fault handling method, service management system, and system management module
CN109344014B (zh) 一种主备切换方法、装置及通信设备
CN107864063B (zh) 一种异常监控方法、装置及电子设备
CN110830283B (zh) 故障检测方法、装置、设备和系统
US9417939B2 (en) Dynamic escalation of service conditions
CN112764956B (zh) 数据库的异常处理系统、数据库的异常处理方法及装置
CN105227385A (zh) 一种故障处理的方法及系统
CN111737085A (zh) 服务器的监控方法、装置和系统及电子设备
CN112612545A (zh) 一种服务器集群的配置热加载系统、方法、设备及介质
CN112217847A (zh) 微服务平台及其实现方法、电子设备及存储介质
CN106878096B (zh) Vnf状态检测通告方法、装置以及系统
CN111064609A (zh) 消息系统的主从切换方法、装置、电子设备及存储介质
CN117370316A (zh) 数据库的高可用管理方法和装置、电子设备及存储介质
CN113055203B (zh) Sdn控制平面的异常恢复方法及装置
CN112231123A (zh) 消息处理方法、装置、存储介质及电子装置
CN111064608A (zh) 消息系统的主从切换方法、装置、电子设备及存储介质
US11153769B2 (en) Network fault discovery
CN115037653B (zh) 业务流量监控方法、装置、电子设备和存储介质
CN111309515A (zh) 一种容灾控制方法、装置及系统
CN113824595B (zh) 链路切换控制方法、装置和网关设备
CN114143330A (zh) 一种时间服务器的配置方法、装置及系统
CN114244694A (zh) 一种网络端口智能管理方法、系统、设备及可读存储介质
CN114584454A (zh) 一种服务器信息的处理方法、装置、电子设备及存储介质
JP2004336658A (ja) ネットワーク監視方法およびネットワーク監視装置
CN112787868A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200424

RJ01 Rejection of invention patent application after publication