一种基于多集群的消息投递系统和消息投递方法

文档序号:9670861阅读:311来源:国知局
一种基于多集群的消息投递系统和消息投递方法
【技术领域】
[0001]本发明涉及消息调度领域,尤其涉及一种基于多集群的消息投递系统和消息投递方法。
【背景技术】
[0002]由于业务的增长以及市场的推广,互联网网站访问用户会有所增加,同时访问量和并发量也会相应增多。原有单台服务器可以满足部分人群的访问请求目前已远远无法满足需求,网站从架构设计考虑会横向扩展业务服务器形成服务器集群。因此在实际的生产环境一个大型网站会部署多个服务器集群,而服务器集群之间可能存在业务的通讯,集群之间通讯消息传递基本采用消息队列模型。
[0003]目前消息队列模型主要采用的是Topic模型(发布/订阅模型)和Queue模型(点对点模型)。Queue模型意味着一个消息只会被一个应用接收,不会被多个应用所接收。Topic模型与Queue模型区别在与消息接收的时候是允许独立接收到所有发送到Topic的消息的。
[0004]随着数据使用的越来越全面,在实际的消息处理过程中,单条消息,特别是等待有后续流程的任务消息,往往需要多方对应处理各自的相关任务。例如对于消息服务器中的任务消息1,节点A需要对其进行a操作,节点B需要对其进行b操作。如果采用Queue模型,那么消息服务器将任务消息I分配给节点A之后,b操作无法实施;如果采用Topic模型,将所有的消息都发送到所有的节点,只是少量的消息处理,各个节点还可以抛弃不与自己相关的任务消息,但是对于大量的消息,对于各个节点将会产生庞大的数据压力,并且造成这种数据压力的任务消息中有很大一部分可能都不是与自身相关的,整个信息处理的效度和速度都降低。

【发明内容】

[0005]本发明的主要目的在于提出一种基于多集群的消息投递系统和消息投递方法,旨在将大批量的消息没有冗余且没有遗漏地发送到对应的节点对信息进行处理,提高信息处理的效度和速度。
[0006]为实现上述目的,本发明提出一种基于多集群的消息投递系统,包括:
[0007]消息服务器和至少两个服务器集群,每个所述服务器集群包括至少两个服务器节占.V,
[0008]所述消息服务器包括:
[0009]消息汇集单元,用于接收待处理的任务消息;
[0010]消息发送单元,用于将所述任务消息根据消息类型发送到对应的至少一个服务器集群;
[0011]所述服务器集群包括:
[0012]消息投递单元,用于将所述任务消息投递到一个服务器节点进行处理。
[0013]其中,所述消息服务器,还包括:
[0014]队列生成单元,用于接收待处理的任务消息后,如果所述任务消息有明确的服务器节点,将该任务消息更新到消息队列;
[0015]所述消息投递单元,具体用于:
[0016]将所述任务消息投递到所述消息队列指定的服务器节点;或
[0017]根据所述服务器节点的任务请求投递任务消息。
[0018]其中,所述服务器集群,还包括:
[0019]消息订阅单元,用于向所述消息服务器发送用于订阅所述任务消息的订阅信息;
[0020]所述消息服务器还包括:
[0021]订阅记录单元,用于记录所述订阅信息。
[0022]其中,所述服务器集群,还包括:
[0023]节点更新单元,用于新增服务器节点,在新增的服务器节点的配置文件中配置所在服务器集群的集群ID。
[0024]其中,所述服务器集群,还包括:
[0025]第一确认单元,用于在接收到所述任务消息后向所述消息服务器发送确认消息;
[0026]所述服务器节点,包括:
[0027]第二确认单元,用于在接收到所述任务消息后向为其投递任务消息的消息调度节点发送确认消息。
[0028]另一方面采用一种基于多集群的消息投递方法,包括:
[0029]消息服务器接收待处理的任务消息;
[0030]消息服务器将所述任务消息根据消息类型发送到对应的至少一个服务器集群;
[0031]所述服务器集群将所述任务消息投递到一个服务器节点进行处理。
[0032]其中,所述消息服务器接收待处理的任务消息之后,还包括:
[0033]如果所述任务消息有明确的服务器节点,将该任务消息更新到消息队列;
[0034]所述服务器集群将所述任务消息投递到单个服务器节点进行处理,具体为:
[0035]所述服务器集群将所述任务消息投递到所述消息队列指定的服务器节点;或
[0036]根据所述服务器节点的任务请求投递任务消息。
[0037]其中,所述消息投递方法,还包括:
[0038]所述服务器集群向所述消息服务器发送用于订阅所述任务消息的订阅信息,所述消息服务器记录所述订阅信息。
[0039]其中,所述消息投递方法,还包括:
[0040]新增服务器节点,在新增的服务器节点的配置文件中配置所在服务器集群的集群ID0
[0041]其中,所述消息服务器将所述任务消息根据消息类型发送到对应的至少一个服务器集群之后,还包括:
[0042]所述服务器集群在接收到所述任务消息后向所述消息服务器发送确认消息;
[0043]所述服务器集群将所述任务消息投递到一个服务器节点进行处理之后,还包括:
[0044]所述服务器节点在接收到所述任务消息后向为其投递任务消息的消息调度节点发送确认消息。
[0045]本发明所提出的基于多集群的消息投递系统和消息投递方法,通过消息服务器汇集所有待处理的任务消息,将任务消息根据各服务器集群的订阅进行发送,再由服务器集群点对点投递到对应的服务器节点,实现了将大批量的消息没有冗余且没有遗漏地发送到对应的节点对信息进行处理,提高信息处理的效度和速度。
【附图说明】
[0046]图1为实现本发明各个实施例的移动终端的硬件结构示意图;
[0047]图2为如图1所示的移动终端的无线通信系统示意图;
[0048]图3A为本发明的一种基于多集群的消息投递方法的第一实施例的方法流程图;
[0049]图3B为Queue模型的消息投递的过程示意图;
[0050]图3C为Topic模型的消息投递的过程示意图;
[0051]图3D为本发明的一种基于多集群的消息投递方法的第一实施例中消息投递的过程图;
[0052]图4为本发明的一种基于多集群的消息投递方法的第二实施例的方法流程图;
[0053]图5为本发明的一种基于多集群的消息投递系统的第一实施例的结构方框图;
[0054]图6为本发明的一种基于多集群的消息投递系统的第二实施例的结构方框图。
[0055]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0056]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0057]现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,〃模块〃与〃部件〃可以混合地使用。
[0058]移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP (便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
[0059]图1为实现本发明各个实施例的移动终端的硬件结构示意。
[0060]移动终端100可以包括无线通信单元110、A/V (音频/视频)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1