消息系统及消息处理方法技术方案

技术编号:14524105 阅读:91 留言:0更新日期:2017-02-02 02:30
本发明专利技术提供了一种消息系统及消息处理方法,系统包括:元数据服务器、至少一消息处理服务器以及存储服务器;所述元数据服务器包括控制中心以及路由控制模块;所述控制中心,用于将同一主题下的消费端分为多个消费组,每一消费组内至少包括一消费端,不同消费组之间消息的消费进度互相隔离;所述路由控制模块,用于根据路由表将生产端生产的同一主题下的消息路由到所述消息处理服务器中相应的分区,分区中的消息采用先进先出原则以保证消息的顺序,且一分区内的消息被一消费端消费,其中,每一消息具有唯一ID;所述消息处理服务器中接收到的消息存储在所述存储服务器中。本发明专利技术极大的提高了消息的可靠性和治理能力,具备极强的故障恢复能力。

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种企业级可靠的消息系统及消息处理方法。
技术介绍
在互联网中间件中,消息系统由于具备解耦、广播、抵御洪波等特制,被大量应用于不同业务线之间,具备非常重要的作用。然而,现有的消息系统,功能较单一,无法同时满足企业中对于消息治理的严苛要求,比如消息不可丢失、消息必须可靠、可重发、消息吞吐可度量等特性。因此提供一种新的消息系统,以实现现有环境下,业务线对消息系统的简单、高效、可靠、透明、可视化监控的需求。
技术实现思路
本专利技术的目的在于,提供一种消息系统及消息处理方法,以实现现有环境下,业务线对消息系统的简单、高效、可靠、透明、可视化监控的需求。为实现上述目的,本专利技术提供了一种消息系统,包括:元数据服务器、至少一消息处理服务器以及存储服务器;所述元数据服务器包括控制中心以及路由控制模块;所述控制中心,用于将同一主题下的消费端分为多个消费组,每一消费组内至少包括一消费端,不同消费组之间消息的消费进度互相隔离;所述路由控制模块,用于根据路由表将生产端生产的同一主题下的消息路由到所述消息处理服务器中相应的分区,分区中的消息采用先进先出原则以保证消息的顺序,且一分区内的消息被一消费端消费,其中,每一消息具有唯一ID;所述消息处理服务器中接收到的消息存储在所述存储服务器中。为实现上述目的,本专利技术还提供了一种消息处理方法,采用本专利技术所述的消息系统,包括如下步骤:(1)通过消息处理服务器接收生产端生产的消息并存储在所述存储服务器中,其中,每一消息具有唯一ID;(2)将同一主题下的消费端分为多个消费组,每一消费组内至少包括一消费端,不同消费组之间消息的消费进度互相隔离;(3)根据路由表将同一主题下的消息路由到所述消息处理服务器中相应的分区,分区中的消息采用先进先出原则以保证消息的顺序,且一分区内的消息被一消费端消费。本专利技术的优点在于:本专利技术所述的消息系统作为一款简单、高效、可靠、透明的消息系统,其消息监控、回溯消费、消息补发和消费端负载均衡的功能,极大的提高了消息的可靠性和治理能力,具备极强的故障恢复能力,具有很好的应用前景。附图说明图1,本专利技术所述的消息系统一实施例所述的架构示意图;图2,本专利技术所述的消息分组示意图;图3,本专利技术所述的主题/分区双层模型示意图;图4,本专利技术所述的消息顺序保证实现方式示意图;图5,本专利技术所述的消息处理方法的流程示意图;具体实施方式下面结合附图对本专利技术提供的消息系统及消息处理方法做详细说明。参考图1,本专利技术所述的消息系统一实施例所述的架构示意图。所述的消息系统包括:元数据服务器12、至少一消息处理服务器14以及存储服务器16。所述元数据服务器12中包括控制中心121以及路由控制模块122。消息系统是通过生产端11生产消息,然后给消费端19消费消息的。所述控制中心121,用于将同一主题下的消费端分为多个消费组,每一消费组内至少包括一消费端,不同消费组之间消息的消费进度互相隔离。所述路由控制模块122,用于根据路由表将生产端11生产的同一主题下的消息路由到所述消息处理服务器14中相应的分区,分区中的消息采用先进先出原则以保证消息的顺序,且一分区内的消息被一消费端19消费,其中,每一消息具有唯一ID。所述消息处理服务器14中接收到的消息存储在所述存储服务器16中。优选的,所述消息处理服务器14可以包括多个服务器,例如,服务器1、服务器2……服务器N。在生产端消息QPS(QueriesPerSecond,每秒查询率)极高的情况下,会达到单台消息处理服务器瓶颈。为了提高消息处理能力,本专利技术所述的消息系统通过增加消息处理服务器,新增的消息处理服务器向元数据服务器注册,元数据服务器更新路由表;这样生产端便可以向多台消息处理器服务器发送消息,提高消息处理能力,同时还可以预防单点故障。所述存储服务器16可以包括一主存储服务器161以及多个备存储服务器162;消息处理服务器14中接收到的消息写入主存储服务器161,主存储服务器161将消息同步到多个备存储服务器162,消息处理服务器14从多个备存储服务器162中读取消息。参考图2,本专利技术所述的消息分组示意图。在本实施例中,所述的消息系统中的所述控制中心121把同一主题下的消费端按照不同的名称分为不同的消费组;一个消费组内可能有多台机器,不同组之间的消费进度互相隔离。这样可以达到,一个主题下的消息,可以广播到多个消费组,实现消息广播的功能。参考图3-4,其中,图3为本专利技术所述的主题/分区双层模型示意图;图4为本专利技术所述的消息顺序保证实现方式示意图。在本实施例中,所述的消息系统中的所述路由控制模块122采用主题/分区双层模型,一个主题下的消息,会被生产端11自定义的路由,路由到固定的分区;例如,根据生产端11根据消息ID选择将相应消息路由到分区3。自定义的路由存储于路由控制模块122的路由表中。而分区中的消息采取先进先出的原则,故其保证消息的顺序,实现消息顺序保证功能;且一个分区内的消息只被一个消费端消费,进一步保证消息顺序。优选的,本专利技术所述的消息系统中的所述控制中心121进一步用于对于消费失败的消息作自动重试,同时记录消费失败次数,在消费失败次数达到预设阈值时,将所述消费失败的消息放入所述消息处理服务器14中的死信分区,并开始消费下一消息。现有的消息系统,在消息消费失败后,会卡在失败的地方,无法消费后面的消息。而本专利技术所述的消息系统作为企业级的消息系统,必须考虑到极限情况下的消费失败问题;因此,本专利技术对于消费失败的消息将会作自动重试,但当消费失败次数达到预设阈值时(例如超过6次后),该消费失败的消息会被放入死信分区,然后开始消费下一个消息,也即实现消息消费失败自动疏通功能。将该消费失败的消息放入死信分区同时还可以发出告警(例如邮件告警),这样,应用人员根据告警邮件,既可以看到消费失败的消息,决定是否要从新消费,又不会导致消息阻塞,从而达到企业级的稳定和可靠性。优选的,本专利技术所述的消息系统中的所述控制中心121进一步用于通过调整存储在所述存储服务器16中的消费进度,向消费端19重发存储在所述存储服务器16中的消费端19消费失败的消息。比如,假设某一消费端出现故障(例如财务对账的机器突然崩溃了),不知道消息消费到了哪里;但基于消息是存储在消息系统的存储服务器中,存储服务器中也保存了消息消费的进度。所述控制中心通过调整消费进度,可以按照时间回溯消费以前的消息(即消费端消费失败的消息,其存储在所述存储服务器中),进而可以直接让消费端重新消费消息,实现消费进度调整功能。优选的,本专利技术所述的消息系统中的所述控制中心121进一步用于向消费端19重发存储在所述存储服务器16中的未被消费端19消费的消息。消息由于被存储在消息系统得存储服务器16中,故消息可以被任意重发,从而让消费端19重新消费消息,实现消息补偿功能。例如,有一个消息,消费端由于当时的处理逻辑错误从而错过了,事后还想重新消费这个消息,则可以通过控制中心121向消费端19重发存储在所述存储服务器16中的未被消费端19消费的消息。优选的,本专利技术所述的消息系统中的所述控制中心121进一步用于在生产端11消息发送失败或者消费端19消息消费失败时,发出消息告警。本专利技术中,消本文档来自技高网...

【技术保护点】
一种消息系统,其特征在于,包括:元数据服务器、至少一消息处理服务器以及存储服务器;所述元数据服务器包括控制中心以及路由控制模块;所述控制中心,用于将同一主题下的消费端分为多个消费组,每一消费组内至少包括一消费端,不同消费组之间消息的消费进度互相隔离;所述路由控制模块,用于根据路由表将生产端生产的同一主题下的消息路由到所述消息处理服务器中相应的分区,分区中的消息采用先进先出原则以保证消息的顺序,且一分区内的消息被一消费端消费,其中,每一消息具有唯一ID;所述消息处理服务器中接收到的消息存储在所述存储服务器中。

【技术特征摘要】
1.一种消息系统,其特征在于,包括:元数据服务器、至少一消息处理服务器以及存储服务器;所述元数据服务器包括控制中心以及路由控制模块;所述控制中心,用于将同一主题下的消费端分为多个消费组,每一消费组内至少包括一消费端,不同消费组之间消息的消费进度互相隔离;所述路由控制模块,用于根据路由表将生产端生产的同一主题下的消息路由到所述消息处理服务器中相应的分区,分区中的消息采用先进先出原则以保证消息的顺序,且一分区内的消息被一消费端消费,其中,每一消息具有唯一ID;所述消息处理服务器中接收到的消息存储在所述存储服务器中。2.根据权利要求1所述的系统,其特征在于,所述控制中心进一步用于对于消费失败的消息作自动重试,同时记录消费失败次数,在消费失败次数达到预设阈值时,将所述消费失败的消息放入所述消息处理服务器中的死信分区,并开始消费下一消息。3.根据权利要求1所述的系统,其特征在于,所述控制中心进一步用于通过调整存储在所述存储服务器中的消费进度,向消费端重发存储在所述存储服务器中的消费端消费失败的消息。4.根据权利要求1所述的系统,其特征在于,所述控制中心进一步用于向消费端重发存储在所述存储服务器中的未被消费端消费的消息。5.根据权利要求1所述的系统,其特征在于,所述控制中心进一步用于在生产端消息发送失败或者消费端消息消费失败时,发出消息告...

【专利技术属性】
技术研发人员:付星
申请(专利权)人:上海找钢网信息科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1