CN108667576A - 消息服务器的主备切换方法、装置和消息服务系统 - Google Patents
消息服务器的主备切换方法、装置和消息服务系统 Download PDFInfo
- Publication number
- CN108667576A CN108667576A CN201810885357.0A CN201810885357A CN108667576A CN 108667576 A CN108667576 A CN 108667576A CN 201810885357 A CN201810885357 A CN 201810885357A CN 108667576 A CN108667576 A CN 108667576A
- Authority
- CN
- China
- Prior art keywords
- message
- message server
- server
- current
- main
- 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
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing 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)
- Hardware Redundancy (AREA)
Abstract
本申请实施例公开了消息服务器的主备切换方法、装置和系统。该方法的一具体实施方式包括:接收主消息服务器和备用消息服务器发送的心跳消息;响应于接收到外部发送的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态;若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器;将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发。该实施方式可以有效地降低客户端请求服务器时,服务器响应中断或超时的风险。
Description
技术领域
本申请实施例涉及通信技术领域,具体涉及消息传输领域,尤其涉及消息服务器的主备切换方法、装置和消息服务系统。
背景技术
在很多需要进行多端通信交互的系统中,服务端通常都会扮演着任务执行者的角色。服务端接收客户端的数据处理请求,并且向客户端反馈数据处理的结果。
在自动驾驶汽车这一系统中,各终端在运行过程中将会产生大量的运行时数据,这些数据例如包括:车辆驾驶状态信息、周边环境采集信息及各算法模块(例如,预处理、感知、定位、地图等)输入输出I/O信息。在车辆运行的过程中,这些数据被都会被统一数据接入平台采集,再发布给外部各个监控中心或存入数据库。数据平台作为自动驾驶系统的统一接入入口,时刻处理着大量的数据和高频的请求。
目前数据平台中的消息服务器使用的是简单逻辑实现,没有相关的风险规避和错误处理。
发明内容
本申请实施例提出了消息服务器的主备切换方法、装置和消息服务系统。
第一方面,本申请实施例提供了一种消息服务器的主备切换方法,包括:接收主消息服务器和备用消息服务器发送的心跳消息;响应于接收到外部发送的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态;若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器;将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发。
在一些实施例中,不可用状态包括网络连接中断状态;基于心跳消息确定主消息服务器的当前状态,包括:响应于在预设时段内未接收到主消息服务器发送的心跳消息,确定主消息服务器的当前状态为网络连接中断状态。
在一些实施例中,心跳消息包括待处理消息队列的当前状态;基于心跳消息确定主消息服务器的当前状态,包括:响应于主消息服务器的待处理消息队列的当前状态为溢出状态,确定主消息服务器的当前状态为满载状态,其中,满载状态属于可用状态;方法还包括:响应于确定主消息服务器的当前状态为满载状态,将当前消息交互请求转发至负载率最低的备用消息服务器。
在一些实施例中,方法还包括:向目的端发送当前消息交互请求的消息处理结果。
在一些实施例中,方法还包括:基于接收到历史消息交互请求的时刻和向目的端发送历史消息交互请求的消息处理结果的时刻之差,确定当前主消息服务器的消息处理及时度;以及响应于当前主消息服务器的消息处理及时度低于预设的及时度阈值,将负载率最小的备用消息服务器作为当前主消息服务器,以将当前消息交互请求向当前主消息服务器转发。
第二方面,本申请实施例提供了一种消息服务器的主备切换装置,包括:接收单元,被配置成接收主消息服务器和备用消息服务器发送的心跳消息;状态确定单元,被配置成响应于接收到外部发送的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态;目标确定单元,被配置成若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器;转发单元,被配置成将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发。
在一些实施例中,不可用状态包括网络连接中断状态;状态确定单元进一步被配置成:响应于在预设时段内未接收到主消息服务器发送的心跳消息,确定主消息服务器的当前状态为网络连接中断状态。
在一些实施例中,心跳消息包括待处理消息队列的当前状态;状态确定单元进一步被配置成:响应于主消息服务器的待处理消息队列的当前状态为溢出状态,确定主消息服务器的当前状态为满载状态,其中,满载状态属于可用状态;转发单元进一步被配置成:响应于确定主消息服务器的当前状态为满载状态,将当前消息交互请求转发至负载率最低的备用消息服务器。
在一些实施例中,装置还包括:结果发送单元,被配置成向目的端发送当前消息交互请求的消息处理结果。
在一些实施例中,装置还包括:及时度确定单元,被配置成基于接收到历史消息交互请求的时刻和向目的端发送历史消息交互请求的消息处理结果的时刻之差,确定当前主消息服务器的消息处理及时度;以及转发单元进一步被配置成:响应于当前主消息服务器的消息处理及时度低于预设的及时度阈值,将负载率最小的备用消息服务器作为当前主消息服务器,以将当前消息交互请求向当前主消息服务器转发。
第三方面,本申请实施例提供了一种消息服务系统,包括状态驱动器以及分别与状态驱动器通信连接的主消息服务器和至少一个备用消息服务器;其中,状态驱动器用于执行如第一方面描述的方法。
第四方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面描述的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,程序被处理器执行时实现如第一方面描述的方法。
本申请实施例提供的消息服务器的主备切换方法、装置和消息服务系统,首先,接收主消息服务器和备用消息服务器发送的心跳消息;接着,响应于接收到外部输入的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态;接着,若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器;最后将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发,可以有效地降低客户端请求服务器时,服务器响应中断或超时的风险,从而提高了数据平台系统整体的稳定性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请一个实施例的消息服务器的主备切换方法可以应用于其中的示例性系统架构图;
图2是根据本申请的消息服务器的主备切换方法的一个实施例的流程图;
图3是根据本申请的消息服务器的主备切换方法的一个应用场景的示意图;
图4是根据本申请的消息服务器的主备切换方法的又一个实施例的流程图;
图5是根据本申请的消息服务器的主备切换装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的消息服务器的主备切换方法的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的消息服务器的主备切换方法或消息服务器的主备切换装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括消息服务系统110和多个客户端120。其中,消息服务系统110可以包括主消息服务器111、至少一个备用消息服务器112以及状态驱动器113。消息服务系统110与客户端120、消息服务系统110中的主消息服务器111、至少一个备用消息服务器112以及状态驱动器113之间均通过网络通信连接。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
消息服务系统110可以响应于客户端120的请求,为客户端120提供其期望获得的各种服务。相应地,客户端120也可以是任意需要通过消息服务系统110获得其所需服务的客户端。例如,当应用于无人驾驶汽车时,客户端120可以是用于采集车辆传感数据的传感器,和/或,车载大脑。在接收到客户端120发送的服务请求之后,消息服务系统110中的状态驱动器113可以从主消息服务器111和至少一个备用消息服务器112中确定出当前用于执行该服务请求的执行主体,并在执行完毕后,将执行结果反馈至目的端。在这里,可以理解的是,目的端可以是发出服务请求的客户端120,也可以是服务请求所指示的其它客户端。
需要说明的是,本申请实施例所提供的消息服务器的主备切换方法一般由状态驱动器113执行,相应地,消息服务器的主备切换装置一般设置于状态驱动器113中。
应该理解,图1中的客户端120和备用消息服务器113的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端和备用消息服务器。
继续参考图2,示出了根据本申请的消息服务器的主备切换方法的一个实施例的流程200。该消息服务器的主备切换方法,包括以下步骤:
步骤201,接收主消息服务器和备用消息服务器发送的心跳消息。
在本实施例中,主消息服务器和备用消息服务器可以按照某种预先设置的规律,通过有线或者无线连接的方式向本实施例的消息服务器的主备切换方法的执行主体(例如图1所示的状态驱动器)发送心跳消息。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
例如,在一些应用场景中,可以预先设置消息服务系统中的主消息服务器和备用消息服务器按照某一时间间隔,周期性地向状态驱动器发送心跳消息。或者,在另一些应用场景中,可以预先设置消息服务系统中的主消息服务器和备用消息服务器在空闲时,向状态驱动器发送心跳消息。
此外,心跳消息的格式和内容可以具体应用场景来进行设置。例如,心跳消息可以包括发送该消息的服务器的身份标识。这样一来,执行主体可以通过身份标识来确定该心跳消息的发送方(例如,图1所示的主消息服务器或者备用消息服务器)。可以理解的是,该身份标识可以通过发送方的IP(Internet Protocol,网络协议)地址来表征,通过MAC(Media Access Control,媒体访问控制)地址来表征,或者预先设置的、与各发送方一一对应的任意标识来表征。
步骤202,响应于接收到外部发送的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态。
当执行主体接收到外部(例如,图1所示的客户端)发送的当前消息交互请求时,需要从与之通信连接的主消息服务器和备用消息服务器中确定出用于执行该当前交互请求的服务器。
可以理解的是,一般而言,在同等条件下,主消息服务器的优先级可以高于各备用消息服务器的优先级。也即是说,若主消息服务器和备用消息服务器均可用,和/或若主消息服务器和备用消息服务器的当前负载相同,则执行主体可优先将当前消息交互请求向主消息服务器进行转发。
因此,执行主体可以首先基于心跳消息确定主消息服务器的当前状态。若主消息服务器发送的心跳消息表明当前主消息服务器可用,则执行主体可以将当前消息交互请求向主消息服务器转发。
步骤203,若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器。
在这里,“不可用状态”可以是任何用于指示主消息服务器不适于对执行主体当前所接收的消息交互请求进行处理的的状态。
在一些可选的实现方式中,“不可用状态”可以包括网络连接中断状态。在这些可选的实现方式中,若在预设时段内,执行主体未接收到主消息服务器发送的心跳消息,则可确定主消息服务器的当前状态为网络连接中断状态。
例如,在一些应用场景中,假设预先设定主消息服务器每2秒向状态驱动器发送一次心跳消息。在这些应用场景中,若状态驱动器在6秒内均未接收到主消息服务器发送的心跳消息,则可认为主消息服务器当前处于不可用状态。
或者,在另一些应用场景中,心跳消息中包含了发送方的当前状态。若主消息服务器发送的心跳消息指示其当前状态为不可用状态,则状态驱动器可以直接确定主消息服务器当前处于不可用状态。
若执行主体确定出当前主消息服务器处于不可用状态,则需要从备用消息服务器中,确定出用于对当前接收到的消息交互请求提供服务的目标备用消息服务器。
可以理解的是,在这里,执行主体确定出的目标备用消息服务器,是当前处于可用状态的备用消息服务器。
在一些应用场景中,可以采用与判断主消息服务器当前是否处于不可用状态的方式类似的方式,来从备用消息服务器中确定出目标备用消息服务器。例如,可以判断各备用消息服务器是否按照预先设定的时间间隔向状态驱动器发送心跳消息,若否,则表明该备用消息服务器当前处于不可用状态。或者,若心跳消息中包含了发送方的当前状态,则状态驱动器可直接基于心跳消息确定出当前处于可用状态下的备用消息服务器。
此外,可以理解的是,若当前有复数个备用消息服务器处于可用状态,可以进一步利用预先设置的算法从中选取出目标备用消息服务器。
步骤204,将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发。
若执行主体基于心跳消息确定出目标备用消息服务器,可任务该目标备用消息服务器是系统中,当前最适宜为消息交互请求提供相应服务的服务器。因此,执行主体可以将目标备用消息服务器重新确定为当前主消息服务器,并将客户端发送的该消息交互请求向该当前主消息服务器转发,从而使当前主消息服务器对该消息交互请求提供服务。
本实施例提供的消息服务器的主备切换方法,首先,接收主消息服务器和备用消息服务器发送的心跳消息;接着,响应于接收到外部输入的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态;接着,若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器;最后将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发,可以有效地降低客户端请求服务器时,服务器响应中断或超时的风险,从而提高了数据平台系统整体的稳定性。
继续参见图3,图3是根据本实施例的消息服务器的主备切换方法的应用场景的一个示意图300。
在图3的应用场景中,消息服务器310、消息服务器320和消息服务器330周期性地向状态驱动器340发送心跳消息。在此期间,状态驱动器340接收到客户端350发送的当前消息交互请求。状态驱动器340需要基于其所接收到的心跳消息从消息服务器310~330中确定出为该消息交互请求提供服务的消息服务器。假设状态驱动器340在一段时间内未接收到消息服务器320发送的心跳消息,可以认为消息服务器320处于不可用状态。此时,状态驱动器340可以从消息服务器310和消息服务器330中确定出为该消息交互请求提供服务的消息服务器,例如,确定出消息服务器330为该消息交互请求提供服务。这样一来,状态驱动器340可将该消息交互请求转发给消息服务器330,从而使得消息服务器330对该消息交互请求执行进一步处理。
进一步参考图4,其示出了消息服务器的主备切换方法的又一个实施例的流程400。该消息服务器的主备切换方法的流程400,包括以下步骤:
步骤401,接收主消息服务器和备用消息服务器发送的心跳消息。
步骤402,响应于接收到外部发送的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态。
步骤403,若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器。
步骤404,将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发。
需要说明的是,本实施例的步骤401~步骤404可以分别采用与图2所示实施例中步骤201~步骤204类似的方式执行,在此不再赘述。
与图2所示的实施例不同的是,本实施例的消息服务器的主备切换方法中,心跳消息还可以进一步待处理消息队列的当前状态。
在这里,待处理消息队列可以是某一个消息服务器上,已接收但并未处理完成的消息交互请求构成的队列。例如,主消息服务器上的待处理消息队列可以由已接收但并未处理完成的消息交互请求按照接收时间先后顺序排列形成。接收时间最晚的未处理完成的消息交互请求排在待处理消息队列的队尾。随着消息交互请求的处理,完成处理的消息交互请求将被从待处理消息队列中移除。
相应地,本实施例的消息服务器的主备切换方法的步骤403还可以进一步包括:响应于主消息服务器的待处理消息队列的当前状态为溢出状态,确定主消息服务器的当前状态为满载状态,其中,满载状态属于可用状态。
本实施例中,可以预先设置待处理消息队列的长度。在预先设置待处理消息队列的长度时,例如可以根据消息服务器的数据处理能力、网络通信能力等进行设置。这样一来,预先设置待处理消息队列的长度越长,可表明消息服务器处理消息交互请求的能力越强。
在这里,待处理消息队列的长度可以用于表征某一个消息服务器上,待处理消息的数量。在一些应用场景中,若执行主体接收到的心跳消息中,待处理消息队列中实际包含的待处理消息交互请求的数量等于该预先设置的消息队列的长度,则可认为该消息服务器的消息队列为溢出状态。相应地,可以确定该消息服务器的当前状态为满载状态。
可以理解的是,满载状态仅代表消息服务器当前的负载达到或接近其处理能力的上限,但该消息服务器仍然可以继续为已接收的消息交互请求提供相应的服务。因此,满载状态可以认为是消息服务器的一种可用状态。
进一步地,本实施例的消息服务器的主备切换方法还可以进一步包括:
步骤405,响应于确定主消息服务器的当前状态为满载状态,将当前消息交互请求转发至负载率最低的备用消息服务器。
在一些可选的实现方式中,可以通过各种可行的方式来确定备用消息服务器的负载率。例如,在一些应用场景中,可以根据备用消息服务器上当前的待处理消息队列中,待处理消息交互请求的数量和预先设置的待处理消息队列的长度值之比,来确定该备用消息服务器的负载率。
这样一来,通过将当前接收到的消息交互请求转发至负载率最低的备用消息服务器,可以提升对该消息交互请求的响应速度,从而提高消息交互请求的处理效率。
从图4中可以看出,与图2对应的实施例相比,本实施例的消息服务器的主备切换方法的流程400,在主消息服务器的当前状态为满载状态时,执行主体将当前接收的消息交互请求转发至负载率最低的备用消息服务器进行处理,从而进一步提升了消息交互请求的响应速度并提高了消息交互请求的处理效率。
在本申请的消息服务器的主备切换方法的各实施例的一些可选的实现方式中,消息服务器的主备切换方法还可以进一步包括:
向目的端发送当前消息交互请求的消息处理结果。
可以理解的是,客户端在向执行主体发送的消息交互请求中,可以包含与该消息交互请求对应的消息处理结果的目的端信息。目的端可以是向执行主体发送消息交互请求的客户端自身,也可以是不同于向执行主体发送消息交互请求的客户端其它客户端和/或服务器。
在这些可选的实现方式的一些应用场景中,本申请的消息服务器的主备切换方法还可以进一步包括:
基于接收到历史消息交互请求的时刻和向目的端发送历史消息交互请求的消息处理结果的时刻之差,确定当前主消息服务器的消息处理及时度。
响应于当前主消息服务器的消息处理及时度低于预设的及时度阈值,将负载率最小的备用消息服务器作为当前主消息服务器,以将当前消息交互请求向当前主消息服务器转发。
在这里,消息处理及时度可以表征处理消息交互请求的及时程度。可以理解,消息处理及时度可以与接收到消息交互请求的时刻和向目的端发送消息交互请求的消息处理结果的时刻之间的差值的绝对值负相关。也即是说,接收到消息交互请求的时刻和向目的端发送消息交互请求的消息处理结果的时刻之间的差值的绝对值越小,可认为消息处理及时度越高,反之,接收到消息交互请求的时刻和向目的端发送消息交互请求的消息处理结果的时刻之间的差值的绝对值越大,可认为消息处理及时度越低。此外,历史消息交互请求可以理解为,在执行主体接收到当前消息交互请求之前,当前主消息服务器所接收到的消息交互请求。
在这些应用场景中,若当前主消息服务器的消息处理及时度低于预设的及时度阈值,则将当前消息交互请求转发至负载率最低的备用消息服务器,可以有效地提升备用消息服务器的利用率并相应地提升消息交互请求的处理效率,相应地,也可以降低主消息服务器的负载,从而有利于主消息服务器的正常运行。
本申请还公开了一种消息服务系统。在一些实施例中,消息服务系统例如可以具有如图1中附图标记110所示的架构。即,消息服务系统可以包括状态驱动器以及分别与状态驱动器通信连接的主消息服务器和至少一个备用消息服务器。并且,本申请的消息服务系统中,状态驱动器可以用于执行如上公开的任意一种消息服务器的主备切换方法。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种消息服务器的主备切换装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的消息服务器的主备切换装置500包括接收单元501、状态确定单元502、目标确定单元503和转发单元504。
其中,接收单元501可被配置成接收主消息服务器和备用消息服务器发送的心跳消息。
状态确定单元502可被配置成响应于接收到外部发送的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态。
目标确定单元503可被配置成若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器。
转发单元504可被配置成将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发。
在一些可选的实现方式中,不可用状态包括网络连接中断状态。
在这些可选的实现方式中,状态确定单元502可进一步被配置成:响应于在预设时段内未接收到主消息服务器发送的心跳消息,确定主消息服务器的当前状态为网络连接中断状态。
在一些可选的实现方式中,心跳消息包括待处理消息队列的当前状态。
在这些可选的实现方式中,状态确定单元502可进一步被配置成:响应于主消息服务器的待处理消息队列的当前状态为溢出状态,确定主消息服务器的当前状态为满载状态,其中,满载状态属于可用状态。
在这些可选的实现方式中,转发单元504可以进一步被配置成:响应于确定主消息服务器的当前状态为满载状态,将当前消息交互请求转发至负载率最低的备用消息服务器。
在一些可选的实现方式中,结果发送单元装置装置还可以包括结果发送单元(图中未示出)。
在这些可选的实现方式中,结果发送单元可以被配置成向目的端发送当前消息交互请求的消息处理结果。
在一些可选的实现方式中,装置还可以包括及时度确定单元(图中未示出)。
在这些可选的实现方式中,及时度确定单元可以被配置成基于接收到历史消息交互请求的时刻和向目的端发送历史消息交互请求的消息处理结果的时刻之差,确定当前主消息服务器的消息处理及时度。
在这些可选的实现方式中,转发单元504还可以进一步被配置成:响应于当前主消息服务器的消息处理及时度低于预设的及时度阈值,将负载率最小的备用消息服务器作为当前主消息服务器,以将当前消息交互请求向当前主消息服务器转发。
下面参考图6,其示出了适于用来实现本申请实施例的消息服务器的主备切换方法的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分606加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括硬盘等的存储部分606;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分607。通信部分607经由诸如因特网的网络执行通信处理。驱动器608也根据需要连接至I/O接口605。可拆卸介质609,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器608上,以便于从其上读出的计算机程序根据需要被安装入存储部分606。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分607从网络上被下载和安装,和/或从可拆卸介质609被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、状态确定单元、目标确定单元和转发单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收主消息服务器和备用消息服务器发送的心跳消息的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:接收主消息服务器和备用消息服务器发送的心跳消息;响应于接收到外部发送的当前消息交互请求,基于心跳消息确定主消息服务器的当前状态;若主消息服务器的当前状态为不可用状态,基于心跳消息,从备用消息服务器中确定出目标备用消息服务器;将所确定出的目标备用消息服务器作为当前主消息服务器以将当前消息交互请求向当前主消息服务器转发。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (13)
1.一种消息服务器的主备切换方法,包括:
接收主消息服务器和备用消息服务器发送的心跳消息;
响应于接收到外部发送的当前消息交互请求,基于所述心跳消息确定所述主消息服务器的当前状态;
若所述主消息服务器的当前状态为不可用状态,基于所述心跳消息,从备用消息服务器中确定出目标备用消息服务器;
将所确定出的目标备用消息服务器作为当前主消息服务器以将所述当前消息交互请求向所述当前主消息服务器转发。
2.根据权利要求1所述的方法,其中,所述不可用状态包括网络连接中断状态;
所述基于所述心跳消息确定所述主消息服务器的当前状态,包括:
响应于在预设时段内未接收到所述主消息服务器发送的心跳消息,确定所述主消息服务器的当前状态为网络连接中断状态。
3.根据权利要求1所述的方法,其中,所述心跳消息包括待处理消息队列的当前状态;
所述基于所述心跳消息确定所述主消息服务器的当前状态,包括:
响应于所述主消息服务器的待处理消息队列的当前状态为溢出状态,确定所述主消息服务器的当前状态为满载状态,其中,所述满载状态属于可用状态;
所述方法还包括:
响应于确定所述主消息服务器的当前状态为满载状态,将所述当前消息交互请求转发至负载率最低的备用消息服务器。
4.根据权利要求1-3之一所述的方法,其中,所述方法还包括:
向目的端发送所述当前消息交互请求的消息处理结果。
5.根据权利要求4所述的方法,所述方法还包括:
若所述主消息服务器的当前状态为可用状态,基于接收到历史消息交互请求的时刻和向目的端发送所述历史消息交互请求的消息处理结果的时刻之差,确定当前主消息服务器的消息处理及时度;以及
响应于当前主消息服务器的消息处理及时度低于预设的及时度阈值,将负载率最小的备用消息服务器作为当前主消息服务器,以将所述当前消息交互请求向所述当前主消息服务器转发。
6.一种消息服务器的主备切换装置,包括:
接收单元,被配置成接收主消息服务器和备用消息服务器发送的心跳消息;
状态确定单元,被配置成响应于接收到外部发送的当前消息交互请求,基于所述心跳消息确定所述主消息服务器的当前状态;
目标确定单元,被配置成若所述主消息服务器的当前状态为不可用状态,基于所述心跳消息,从备用消息服务器中确定出目标备用消息服务器;
转发单元,被配置成将所确定出的目标备用消息服务器作为当前主消息服务器以将所述当前消息交互请求向所述当前主消息服务器转发。
7.根据权利要求6所述的装置,其中,所述不可用状态包括网络连接中断状态;
所述状态确定单元进一步被配置成:
响应于在预设时段内未接收到所述主消息服务器发送的心跳消息,确定所述主消息服务器的当前状态为网络连接中断状态。
8.根据权利要求6所述的装置,其中,所述心跳消息包括待处理消息队列的当前状态;
所述状态确定单元进一步被配置成:
响应于所述主消息服务器的待处理消息队列的当前状态为溢出状态,确定所述主消息服务器的当前状态为满载状态,其中,所述满载状态属于可用状态;
所述转发单元进一步被配置成:
响应于确定所述主消息服务器的当前状态为满载状态,将所述当前消息交互请求转发至负载率最低的备用消息服务器。
9.根据权利要求6-8之一所述的装置,其中,所述装置还包括:
结果发送单元,被配置成向目的端发送所述当前消息交互请求的消息处理结果。
10.根据权利要求9所述的装置,所述装置还包括:
及时度确定单元,被配置成若所述主消息服务器的当前状态为可用状态,基于接收到历史消息交互请求的时刻和向目的端发送所述历史消息交互请求的消息处理结果的时刻之差,确定当前主消息服务器的消息处理及时度;以及
所述转发单元进一步被配置成:
响应于当前主消息服务器的消息处理及时度低于预设的及时度阈值,将负载率最小的备用消息服务器作为当前主消息服务器,以将所述当前消息交互请求向所述当前主消息服务器转发。
11.一种消息服务系统,包括状态驱动器以及分别与所述状态驱动器通信连接的主消息服务器和至少一个备用消息服务器;
其中,所述状态驱动器用于执行如1-5任意一项的方法。
12.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810885357.0A CN108667576A (zh) | 2018-08-06 | 2018-08-06 | 消息服务器的主备切换方法、装置和消息服务系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810885357.0A CN108667576A (zh) | 2018-08-06 | 2018-08-06 | 消息服务器的主备切换方法、装置和消息服务系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108667576A true CN108667576A (zh) | 2018-10-16 |
Family
ID=63789693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810885357.0A Pending CN108667576A (zh) | 2018-08-06 | 2018-08-06 | 消息服务器的主备切换方法、装置和消息服务系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108667576A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109618000A (zh) * | 2019-01-09 | 2019-04-12 | 广州视源电子科技股份有限公司 | 负载均衡服务的主从切换方法、装置、系统及服务器 |
CN111162952A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 一种设备容错方法及装置 |
CN111338905A (zh) * | 2020-03-03 | 2020-06-26 | 中国工商银行股份有限公司 | 应用节点数据处理方法及装置 |
CN112612654A (zh) * | 2021-01-08 | 2021-04-06 | 成都民航空管科技发展有限公司 | 空管自动化系统多机主备切换方法及冗余服务系统 |
WO2022252631A1 (zh) * | 2021-05-31 | 2022-12-08 | 平安科技(深圳)有限公司 | 分布式应用方法、装置、计算机设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179432A (zh) * | 2007-12-13 | 2008-05-14 | 浪潮电子信息产业股份有限公司 | 一种多机环境中实现系统高可用的方法 |
CN101557315A (zh) * | 2009-05-15 | 2009-10-14 | 成都市华为赛门铁克科技有限公司 | 一种主备切换方法、装置及系统 |
CN102521044A (zh) * | 2011-12-30 | 2012-06-27 | 北京拓明科技有限公司 | 一种基于消息中间件的分布式任务调度方法及系统 |
CN103139199A (zh) * | 2012-12-31 | 2013-06-05 | 深圳键桥通讯技术股份有限公司 | 以平台消息总线机制实现子系统间信息交互的方法 |
CN107846715A (zh) * | 2016-09-20 | 2018-03-27 | 深圳市盛路物联通讯技术有限公司 | 物联网基于传输速率的接入点切换方法及装置 |
-
2018
- 2018-08-06 CN CN201810885357.0A patent/CN108667576A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179432A (zh) * | 2007-12-13 | 2008-05-14 | 浪潮电子信息产业股份有限公司 | 一种多机环境中实现系统高可用的方法 |
CN101557315A (zh) * | 2009-05-15 | 2009-10-14 | 成都市华为赛门铁克科技有限公司 | 一种主备切换方法、装置及系统 |
CN102521044A (zh) * | 2011-12-30 | 2012-06-27 | 北京拓明科技有限公司 | 一种基于消息中间件的分布式任务调度方法及系统 |
CN103139199A (zh) * | 2012-12-31 | 2013-06-05 | 深圳键桥通讯技术股份有限公司 | 以平台消息总线机制实现子系统间信息交互的方法 |
CN107846715A (zh) * | 2016-09-20 | 2018-03-27 | 深圳市盛路物联通讯技术有限公司 | 物联网基于传输速率的接入点切换方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109618000A (zh) * | 2019-01-09 | 2019-04-12 | 广州视源电子科技股份有限公司 | 负载均衡服务的主从切换方法、装置、系统及服务器 |
CN109618000B (zh) * | 2019-01-09 | 2021-08-31 | 广州视源电子科技股份有限公司 | 负载均衡服务的主从切换方法、装置、系统及服务器 |
CN111162952A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 一种设备容错方法及装置 |
CN111338905A (zh) * | 2020-03-03 | 2020-06-26 | 中国工商银行股份有限公司 | 应用节点数据处理方法及装置 |
CN112612654A (zh) * | 2021-01-08 | 2021-04-06 | 成都民航空管科技发展有限公司 | 空管自动化系统多机主备切换方法及冗余服务系统 |
CN112612654B (zh) * | 2021-01-08 | 2024-03-29 | 成都民航空管科技发展有限公司 | 空管自动化系统多机主备切换方法及冗余服务系统 |
WO2022252631A1 (zh) * | 2021-05-31 | 2022-12-08 | 平安科技(深圳)有限公司 | 分布式应用方法、装置、计算机设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667576A (zh) | 消息服务器的主备切换方法、装置和消息服务系统 | |
CN109981765B (zh) | 用于确定内容分发网络的访问路径的方法和装置 | |
CN108009028B (zh) | 消息处理方法、装置、设备及计算机可读存储介质 | |
JP6687788B1 (ja) | 分散型ロボットのスケジューリング決定方法、装置、システム並びに電子機器及び記憶媒体 | |
CN108734317A (zh) | 网约车订单信息处理方法及装置 | |
CN105721547B (zh) | 协同处理业务的方法和装置 | |
CN109391649A (zh) | 页面加载的方法、装置和系统 | |
US20220247707A1 (en) | Session message display method, electronic device and storage medium | |
CN106302647B (zh) | 消息分发方法及服务器 | |
CN110121161A (zh) | 一种数据传输方法、装置、系统和服务器 | |
US20230045979A1 (en) | Controlling delivery via unmanned delivery service through allocated network resources | |
EP3481028B1 (en) | Thread-based tcp packet processing | |
CN108229771A (zh) | 分配订单的方法及装置 | |
CN111510493B (zh) | 分布式数据传输方法及装置 | |
CN107798420B (zh) | 信息显示的方法及装置、电子设备 | |
CN114500633B (zh) | 数据转发方法、相关装置、程序产品及数据传输系统 | |
CN107835095A (zh) | 一种日志的处理方法及装置 | |
CN105430726B (zh) | 一种通信终端的载波聚合功能控制方法及通信终端 | |
CN109660615A (zh) | 数据处理方法、装置、介质及电子设备 | |
CN112714146B (zh) | 一种资源调度方法、装置、设备及计算机可读存储介质 | |
CN115268821A (zh) | 音频播放方法及装置、设备和介质 | |
CN113726881B (zh) | 通信连接建立方法、相关装置及计算机可读存储介质 | |
CN108092858B (zh) | 用于切换代理节点的方法及装置 | |
CN108289165A (zh) | 一种基于手机控制相机的实现方法、装置及终端设备 | |
CN113535402A (zh) | 基于5g mec的负载均衡处理方法、装置及电子设备 |
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: 20181016 |
|
RJ01 | Rejection of invention patent application after publication |