消息中间件的平滑扩容方法及系统与流程

文档序号:11960483阅读:269来源:国知局
消息中间件的平滑扩容方法及系统与流程

本发明涉及通信技术领域,尤其涉及一种消息中间件的平滑扩容方法及装置。



背景技术:

消息中间件是一种由消息传输机制或消息队列模式组成的中间件技术,利用高可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。在分布式消息中间件体系中,集群的规模会随着业务的增长而不断壮大,集群内节点会频繁出现某个节点上线和下线的情况,当业务暴增时,需要对消息中间件进行扩容,目前,系统的扩容方式包括横向扩容方式,横向扩容方式主要是通过在消息中间件中增加节点的方式实现的。

然而,在采用横向扩容方式对消息中间件进行扩容时,由于需要在发送端和接收端重新配置节点信息,导致无法实现消息中间件的扩容对发送端及接收端的完全透明,发送端及接收端仍然能够感知到消息中间件的扩容。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种消息中间件的平滑扩容方法,旨在解决现有技术中无法实现消息中间件的扩容对发送端及接收端的完全透明的技术问题。

为实现上述目的,本发明提供的一种消息中间件的平滑扩容方法,所述方法包括:

在需要对消息中间件进行扩容时,控制服务器接收增加的第一节点发送的第一节点的名称及所述第一节点所提供的业务的路由信息;

控制服务器将所述第一节点的名称及所述第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中;

控制服务器将所述节点管理列表发送给接收端及发送端。

优选地,所述控制服务器接收增加的第一节点发送的第一节点名称及业务路由信息之前还包括:

在增加的所述第一节点启动后,所述第一节点创建所述第一节点所提供的业务;

将所述第一节点的名称及所述第一节点所提供的业务的路由信息发送给所述控制服务器。

优选地,所述方法还包括:

若接收到接收端或发送端定时发送的节点管理列表的获取请求,则向所述接收端或发送端发送所述节点管理列表。

优选地,所述方法还包括:

若接收到第二节点定时上报的第二节点的名称及所述第二节点提供的业务的路由信息,则根据接收到的所述第二节点的名称及所述第二节点提供的业务的路由信息更新所述节点管理列表。

为实现上述目的,本发明还提供一种消息中间件的平滑扩容系统,所述系统包括:控制服务器,所述控制服务器包括:

接收模块,用于在需要对消息中间件进行扩容时,接收增加的第一节点发送的第一节点的名称及所述第一节点所提供的业务的路由信息;

保存模块,用于将所述第一节点的名称及所述第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中;

发送模块,用于将所述节点管理列表发送给接收端及发送端。

优选地,所述系统还包括:增加的所述第一节点,所述第一节点包括:

创建模块,用于在增加的所述第一节点启动后,创建所述第一节点所提供的业务;

信息发送模块,用于将所述第一节点的名称及所述第一节点所提供的业务的路由信息发送给所述控制服务器。

优选地,所述控制服务器的所述发送模块还用于:

若接收到接收端或发送端定时发送的节点管理列表的获取请求,则向所述接收端或发送端发送所述节点管理列表。

优选地,所述控制服务器还包括:

更新模块,用于若接收到第二节点定时上报的第二节点的名称及所述第二节点提供的业务的路由信息,则根据接收到的所述第二节点的名称及所述第二节点提供的业务的路由信息更新所述节点管理列表。

本发明提供一种消息中间件的平滑扩容方法,该方法中,在需要对消息中间件进行扩容时,控制服务器接收增加的第一节点发送的第一节点的名称及第一节点所提供的业务的路由信息,该控制服务器将该第一节点的名称及该第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中,且将该节点管理列表发送给接收端及发送端。通过由控制服务器管理节点管理列表,该节点管理列表包含消息中间件中节点的名称及节点所提供的业务的路由信息之间的映射关系,使得在消息中间件中增加了第一节点以实现消息中间件的扩容时,能够由控制服务器将增加的第一节点的名称及该第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中,并将该节点管理列表发送给接收端及发送端,使得接收端及发送端不需要在消息中间件进行扩容时在本地重新配置节点信息,而只需要接收控制服务器发送的节点管理列表,对于接收端及发送端来说,消息中间件的扩容是完全透明的,因此,能够有效实现消息中间件的扩容对接收端及发送端的完全透明,即实现平滑扩容。

附图说明

图1为本发明实施例中消息中间件的结构示意图;

图2为本发明实施例中消息中间件另一结构示意图;

图3为本发明第一实施例中消息中间件的平滑扩容方法的流程示意图;

图4为本发明图3所示第一实施例的追加步骤的流程示意图;

图5为本发明第二实施例中消息中间件的平滑扩容系统的功能模块的示意图;

图6为本发明第三实施例中消息中间件的平滑扩容系统的功能模块的示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

由于现有技术中,通过横向扩容方式对消息中间件进行扩容时,存在消息中间件的扩容对发送端及接收端是不透明的,发送端及接收端仍然需要感知到消息中间件的扩容的问题。

为了解决上述技术问题,本发明提出一种消息中间件的平滑扩容方法,通过由控制服务器管理节点管理列表,该节点管理列表包含消息中间件中节点的名称及节点所提供的业务的路由信息之间的映射关系,使得在消息中间件中增加了第一节点以实现消息中间件的扩容时,能够由控制服务器将增加的第一节点的名称及该第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中,并将该节点管理列表发送给接收端及发送端,使得接收端及发送端不需要在消息中间件进行扩容时在本地重新配置节点信息,而只需要接收控制服务器发送的节点管理列表,对于接收端及发送端来说,消息中间件的扩容是完全透明的,因此,能够有效实现消息中间件的扩容对接收端及发送端的完全透明,即实现平滑扩容。

为了更好的理解本发明实施例中的技术方案,下面将介绍本发明实施例中消息中间件的结构,请参阅图1,为本发明实施例中消息中间件的结构示意图,在图1中,发送端和接收端接入消息中间件的业务系统中,分别与消息中间件中内置的业务服务器及Controller(控制服务器)连接。其中,该Controller负责维护业务服务器的列表和业务服务器所提供的业务的路由信息,监测业务服务器的运行情况,以使接收端和发送端从该Controller中获取业务服务器的运行情况。该Controller包括RoutingInfo和Scheduler,该RoutingInfo表示业务服务器提供的业务的路由信息;所述Scheduler对节点中主业务服务器和备份业务服务器的切换进行管理。该消息中间件还包括Admin;该Admin是消息中间件的管理控制器,且包括Topic Mgmt、User Mgmt和Permission Mgmt。其中,Topic Mgmt负责业务消息类型的创建和修改;User Mgmt对接入该消息中间件中的发送端和接收端进行管理;该Permission Mgmt对接入该消息中间件中的发送端和接收端的权限进行管理。其中,业务服务器负责所述业务消息的接收、发送和存储,该业务服务器包括Permission、HA(High Available,高可用性群集)Switcher、Remoting、Message Routing、Meta data mgmt、Message Store、Stat、Console和Log。其中,Permission控制有权限的发送端和接收端接入该业务服务器中;HA Switcher负责控制主业务服务器和备份业务服务器的自动切换;其中,Remoting负责业务服务器的远程通信;其中,Message Routing负责业务服务器接收和发送业务消息;Meta data mgmt用于对业务服务器中的元数据进行管理;Message Store对业务服务器所接收的业务消息进行存储;Stat用于统计该业务服务器接收和发送的业务消息;Console负责接收上述Admin发送的控制命令;Log用于输出与业务服务器运行状况有关的日志。

其中,上述架构中仅以一个业务服务器为例进行描述的,实际上在消息中间件中,一个节点是包含3个业务服务器,分别是一个主业务服务器和两个备份业务服务器,在实际使用过程中,通常优先使用主业务服务器,且在主业务服务器出现故障时,将业务切换至备份业务服务器,并使用切换后的备份业务服务器。

此外,上述架构中仅以一个controller为例进行描述,在实际应用中,消息中间件包含多个Controller构成的集群。具体请参阅图2,图2为消息中间件另一结构示意图。

在图2中,包含多个节点,多个节点构成业务服务器集群,其中,对于同一个节点中的业务服务器,其提供的业务是相同的,且业务的路由信息也是相同的,其中,Controller集群中的多个Controller所维护的业务服务器的列表和业务服务器所提供的业务的路由信息是完全相同的。

基于上述图1及图2所示的消息中间件的架构示意图,所述本发明提供一种消息中间件的平滑扩容方法及系统。

请参阅图3,为本发明第一实施例中消息中间件的平滑扩容方法的流程示意图,该方法包括:

步骤301、在需要对消息中间件进行扩容时,控制服务器接收增加的第一节点发送的第一节点的名称及所述第一节点所提供的业务的路由信息;

在本发明实施例中,存在对消息中间件的运行状态进行监控的监控系统,该监控系统在监控到消息中间件满足扩容条件时,将发出扩容提示,使得管理人员在得到该扩容提示之后,可以在该消息中间件中增加节点。

其中,满足扩容条件为以下情况中的任意一种:网络带宽占用达到预设带宽百分比,磁盘IO读写负载达到预设负载值,响应延时时间达到预设时间值。

其中,控制服务器将接收增加的第一节点发送的第一节点的名称及该第一节点所提供的业务的路由信息。

步骤302、控制服务器将所述第一节点的名称及所述第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中;

步骤303、控制服务器将所述节点管理列表发送给接收端及发送端。

在本发明实施例中,控制服务器中设置节点管理列表,该节点管理列表中包含消息中间件中各个节点的名称及各个节点所提供的业务的路由信息之间的映射关系,其中,通过在节点管理列表中包含各个节点的名称,并在节点管理列表中包含各个节点所提供的业务的路由信息,能够有效实现业务服务器提供的业务的路由信息的维护。

在本发明实施例中,在对消息中间件进行扩容时,控制服务器将接收到的扩容增加的第一节点的名称及第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中,且控制服务器还将该节点管理列表发送给接收端及发送端,使得接收端及发送端能够更新节点管理列表,因此,对于接收端及发送端来说,对消息中间件进行扩容之后,仅需要更新其保存的节点管理列表即可,能够有效的实现发送端、接收端及业务服务器之间的解耦,实现消息中间件的扩容对接收端及发送端的完全透明,即实现平滑扩容。

请参阅图4,为图3所示第一实施例中消息中间件的平滑扩容方法的追加步骤的流程示意图,该追加步骤包括:

步骤401、在增加的所述第一节点启动后,所述第一节点创建所述第一节点所提供的业务;

步骤402、将所述第一节点的名称及所述第一节点所提供的业务的路由信息发送给所述控制服务器。

在本发明实施例中,监控系统在检测到消息中间件满足扩容条件时,即可确定该消息中间件需要扩容,且在消息中间件中增加第一节点,且该第一节点启动之后,该第一节点将创建该第一节点所提供的业务,并将该第一节点的名称及该第一节点所提供的业务的路由信息发送给控制服务器。

其中,第一节点创建第一节点所提供的业务是指第一节点中的主业务服务器及备份业务服务器分别创建其提供的业务,且主业务服务器和备份业务服务器创建的业务是相同的。

在本发明实施例中,在对消息中间件进行扩容时,通过由增加的第一节点将该第一节点的名称及该第一节点所提供的业务的路由信息发送给控制服务器,使得能够由该控制服务器实现消息中间件的平滑扩容。

进一步的,在本发明实施例中,发送端及接收端还将定时从控制服务器获取节点管理列表,即图3所示的消息中间件的平滑扩容方法还包括以下步骤:

若接收到接收端或发送端定时发送的节点管理列表的获取请求,则向所述接收端或发送端发送所述节点管理列表。

在本发明实施例中,控制服务器在接收到接收端或发送端定时发送的节点管理列表的获取请求之后,将其保存的节点管理列表发送给对应的接收端或发送端,使得接收端或发送端还能够通过定时发送节点管理列表的方式获取节点管理列表。

进一步的,在本发明实施例中,节点也将定时向控制服务器上报其提供的业务的路由信息,即图3所示的消息中间件的平滑扩容方法还包括以下步骤:

若接收到第二节点定时上报的第二节点的名称及所述第二节点提供的业务的路由信息,则根据接收到的所述第二节点的名称及所述第二节点提供的业务的路由信息更新所述节点管理列表。

在本发明实施例中,消息中间件中的节点将定时向控制服务器进行上报,且控制服务器若接收到第二节点定时上报的第二节点的名称及第二节点提供的业务的路由信息,则根据接收到的该第二节点的名称及该第二节点提供的业务的路由信息更新节点管理列表,具体可以包括:利用第二节点的名称查找节点管理列表,确定在节点管理列表中与该第二节点的名称对应的路由录信息,并利用接收到的第二节点提供的业务的路由信息替换在节点管理列表中查找到的路由信息,使得能够有效实现节点管理列表中节点所提供的业务的路由信息的更新。

请参阅图5,为本发明第二实施例中消息中间件的平滑扩容系统的结构示意图,该平滑扩容系统包含控制服务器501,该控制服务器501包括:接收模块502、保存模块503及发送模块504。

接收模块502,用于在需要对消息中间件进行扩容时,接收增加的第一节点发送的第一节点的名称及所述第一节点所提供的业务的路由信息;

在本发明实施例中,存在对消息中间件的运行状态进行监控的监控系统,该监控系统在监控到消息中间件满足扩容条件时,将发出扩容提示,使得管理人员在得到该扩容提示之后,可以在该消息中间件中增加节点。

其中,满足扩容条件为以下情况中的任意一种:网络带宽占用达到预设带宽百分比,磁盘IO读写负载达到预设负载值,响应延时时间达到预设时间值。

其中,控制服务器501中的接收模块502将接收增加的第一节点发送的第一节点的名称及该第一节点所提供的业务的路由信息。

保存模块503,用于将所述第一节点的名称及所述第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中;

发送模块504,用于将所述节点管理列表发送给接收端及发送端。

在本发明实施例中,控制服务器中设置节点管理列表,该节点管理列表中包含消息中间件中各个节点的名称及各个节点所提供的业务的路由信息之间的映射关系,其中,通过在节点管理列表中包含各个节点的名称,并在节点管理列表中包含各个节点所提供的业务的路由信息,能够有效实现业务服务器提供的业务的路由信息的维护。

在本发明实施例中,在对消息中间件进行扩容时,保存模块503将接收到的扩容增加的第一节点的名称及第一节点所提供的业务的路由信息之间的映射关系保存至节点管理列表中,且发送模块504还将该节点管理列表发送给接收端及发送端,使得接收端及发送端能够更新节点管理列表,因此,对于接收端及发送端来说,对消息中间件进行扩容之后,仅需要更新其保存的节点管理列表即可,能够有效的实现发送端、接收端及业务服务器之间的解耦,实现消息中间件的扩容对接收端及发送端的完全透明,即实现平滑扩容。

基于图5所示第二实施例,请参阅图6,为本发明第三实施例中消息中间件的平滑扩容系统的功能模块的示意图,该系统包括如图5所示第二实施例中的控制服务器501,且控制服务器501包括:接收模块502、保存模块503及发送模块504,且与图5所示第二实施例中描述的内容相似,此处不做赘述。

在本发明实施例中,上述系统还包括:增加的第一节点601,所述第一节点601包括:

创建模块602,用于在增加的所述第一节点启动后,创建所述第一节点所提供的业务;

信息发送模块603,用于将所述第一节点的名称及所述第一节点所提供的业务的路由信息发送给所述控制服务器501。

在本发明实施例中,监控系统在检测到消息中间件满足扩容条件时,即可确定该消息中间件需要扩容,且在消息中间件中增加第一节点601,且该第一节点601启动之后,该第一节点601中的创建模块602将创建该第一节点所提供的业务,并由信息发送模块603将该第一节点的名称及该第一节点所提供的业务的路由信息发送给控制服务器。

其中,第一节点601创建第一节点601所提供的业务是指第一节点601中的主业务服务器及备份业务服务器分别创建其提供的业务,且主业务服务器和备份业务服务器创建的业务是相同的。

在本发明实施例中,在对消息中间件进行扩容时,通过由增加的第一节点601将该第一节点的名称及该第一节点所提供的业务的路由信息发送给控制服务器,使得能够由该控制服务器实现消息中间件的平滑扩容。

进一步的,在上述图5所示第二实施例或者图6所示第三实施例中,所述控制服务器的所述发送模块504还用于:

若接收到接收端或发送端定时发送的节点管理列表的获取请求,则向所述接收端或发送端发送所述节点管理列表。

在本发明实施例中,控制服务器在接收到接收端或发送端定时发送的节点管理列表的获取请求之后,发送模块504将控制服务器保存的节点管理列表发送给对应的接收端或发送端,使得接收端或发送端还能够通过定时发送节点管理列表的方式获取节点管理列表。

进一步的,在上述图5所示第二实施例或者图6所示第三实施例中,所述控制服务器还包括:

更新模块,用于若接收到第二节点定时上报的第二节点的名称及所述第二节点提供的业务的路由信息,则根据接收到的所述第二节点的名称及所述第二节点提供的业务的路由信息更新所述节点管理列表。

在本发明实施例中,消息中间件中的节点将定时向控制服务器进行上报,且控制服务器若接收到第二节点定时上报的第二节点的名称及第二节点提供的业务的路由信息,则更新模块根据接收到的该第二节点的名称及该第二节点提供的业务的路由信息更新节点管理列表,具体可以包括:利用第二节点的名称查找节点管理列表,确定在节点管理列表中与该第二节点的名称对应的路由录信息,并利用接收到的第二节点提供的业务的路由信息替换在节点管理列表中查找到的路由信息,使得能够有效实现节点管理列表中节点所提供的业务的路由信息的更新。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1