服务器、消息分配的方法及存储介质技术

技术编号:19515391 阅读:30 留言:0更新日期:2018-11-21 10:17
本发明专利技术涉及一种服务器、消息分配的方法及存储介质,该方法包括:在各消息消费者的业务系统接入消息系统后,启动扫描进程对各业务系统的客户端消费消息队列的积压值及每秒消费的消息量进行扫描;当有业务系统的客户端消费消息队列的积压值大于预定阈值,且该消费消息队列的积压值与每秒消费的消息量的比值大于预定比值后,将该业务系统的客户端作为第一客户端进行标记,并将标记信息发送给该第一客户端;当接收该第一客户端的重新分配消息队列的平衡请求后,在预定时间内控制该第一客户端与该消息队列的连接断开,并将该消息队列分配给除该第一客户端外消费该消息队列的各其他业务系统的客户端。本发明专利技术能够防止消息堆积,避免出现磁盘IO问题。

【技术实现步骤摘要】
服务器、消息分配的方法及存储介质
本专利技术涉及通信
,尤其涉及一种服务器、消息分配的方法及存储介质。
技术介绍
目前,消息系统越来越普及,消息生产者producer可在消息系统中用消息生产者producer身份申请发布相关消息主题topic,消息消费者consumer可在消息系统中用消息消费者consumer身份申请订阅相关的消息主题topic。消费者一般是多台机器的一个集群对消费队列进行消费。由于消费者集群会被用户访问线程占用资源,导致部分机器消费消息非常慢。当消息发布的速度很快,而消费慢的机器又一直占用着消息队列时,将导致消息一直堆积在消息系统中,消息系统容易出现磁盘IO问题,例如磁盘空间不够用或者丢失数据等问题,系统性能低下。
技术实现思路
本专利技术的目的在于提供一种服务器、消息分配的方法及存储介质,旨在防止消息堆积,避免出现磁盘IO问题,提高系统性能。为实现上述目的,本专利技术提供一种服务器,所述服务器包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的处理系统,所述处理系统被所述处理器执行时实现如下步骤:扫描步骤,在各消息消费者的业务系统接入消息系统后,启动扫描进程对各业务系统的客户端消费消息队列的积压值及每秒消费的消息量进行扫描;标记步骤,当有业务系统的客户端消费消息队列的积压值大于预定阈值,且该消费消息队列的积压值与每秒消费的消息量的比值大于预定比值后,将该业务系统的客户端作为第一客户端进行标记,并将标记信息发送给该第一客户端;重新分配步骤,当接收该第一客户端的重新分配消息队列的平衡请求后,在预定时间内控制该第一客户端与该消息队列的连接断开,并将该消息队列分配给除该第一客户端外消费该消息队列的各其他业务系统的客户端。优选地,所述处理系统被所述处理器执行时,还实现如下步骤:在各其他业务系统的客户端中,当有业务系统的客户端消费消息队列的积压值大于预定阈值,且该消费消息队列的积压值与每秒消费的消息量的比值大于预定比值后,将该业务系统的客户端作为第二客户端进行标记,并将本次标记信息发送给该第二客户端;当接收到该第二客户端的重新分配消息队列的平衡请求后,分析该第一客户端与该消息队列的连接断开的时间是否大于等于所述预定时间;若是,则在预定时间内控制该第二客户端与该消息队列的连接断开,并将该消息队列分配给除该第二客户端外消费该消息队列的各其他业务系统的客户端;若否,则在预定时间内控制该第二客户端与该消息队列的连接断开,并将该消息队列分配给除该第一客户端、第二客户端外消费该消息队列的各其他业务系统的客户端。优选地,所述处理系统被所述处理器执行时,还实现如下步骤:统计当前已被标记的业务系统的客户端的数量,计算当前已被标记的业务系统的客户端占消费该消息队列的所有业务系统的客户端的比例;分析该比例是否大于预设比例;若是,则发送提醒消息至消息管理系统,以供消息管理系统将提醒消息发送给预定的终端。优选地,所述处理系统被所述处理器执行时,还实现如下步骤:当接收到针对该消息队列的重启实例的消息时,将所有被标记的业务系统的客户端的标记及标记信息删除,并重新将该消息队列分配给消费该消息队列的各业务系统的客户端。为实现上述目的,本专利技术还提供一种消息分配的方法,所述消息分配的方法包括:S1,在各消息消费者的业务系统接入消息系统后,启动扫描进程对各业务系统的客户端消费消息队列的积压值及每秒消费的消息量进行扫描;S2,当有业务系统的客户端消费消息队列的积压值大于预定阈值,且该消费消息队列的积压值与每秒消费的消息量的比值大于预定比值后,将该业务系统的客户端作为第一客户端进行标记,并将标记信息发送给该第一客户端;S3,当接收该第一客户端的重新分配消息队列的平衡请求后,在预定时间内控制该第一客户端与该消息队列的连接断开,并将该消息队列分配给除该第一客户端外消费该消息队列的各其他业务系统的客户端。优选地,所述步骤S3之后,还包括:在各其他业务系统的客户端中,当有业务系统的客户端消费消息队列的积压值大于预定阈值,且该消费消息队列的积压值与每秒消费的消息量的比值大于预定比值后,将该业务系统的客户端作为第二客户端进行标记,并将本次标记信息发送给该第二客户端;当接收到该第二客户端的重新分配消息队列的平衡请求后,分析该第一客户端与该消息队列的连接断开的时间是否大于等于所述预定时间;若是,则在预定时间内控制该第二客户端与该消息队列的连接断开,并将该消息队列分配给除该第二客户端外消费该消息队列的各其他业务系统的客户端;若否,则在预定时间内控制该第二客户端与该消息队列的连接断开,并将该消息队列分配给除该第一客户端、第二客户端外消费该消息队列的各其他业务系统的客户端。优选地,所述消息分配的方法,还包括:统计当前已被标记的业务系统的客户端的数量,计算当前已被标记的业务系统的客户端占消费该消息队列的所有业务系统的客户端的比例;分析该比例是否大于预设比例;若是,则发送提醒消息至消息管理系统,以供消息管理系统将提醒消息发送给预定的终端。优选地,所述消息分配的方法,还包括:当接收到针对该消息队列的重启实例的消息时,将所有被标记的业务系统的客户端的标记及标记信息删除,并重新将该消息队列分配给消费该消息队列的各业务系统的客户端。优选地,所述预定阈值为10万条,所述预定比值为10800。本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有处理系统,所述处理系统被处理器执行时实现上述的消息分配的方法的步骤。本专利技术的有益效果是:本专利技术在各业务系统的客户端消费消息队列时,通过扫描其消费消息队列的积压值及每秒消费的消息量,如果发现有消费慢的客户端,则将其打上消费慢的标记,然后启动重新分配操作,在预定时间内控制该客户端无法消费该消息队列,并将该消息队列分配给除该客户端外消费该消息队列的各其他客户端,通过这种方式,及时发现消费慢的客户端,并控制消费慢的客户端暂时无法消费消息队列,使得消息队列尽快消费,防止堆积,避免出现磁盘IO问题,提高系统性能。附图说明图1为本专利技术各个实施例一可选的应用环境示意图;图2为本专利技术客户端消费消息队列第一实施例的示意图;图3为本专利技术客户端消费消息队列第二实施例的示意图;图4为本专利技术客户端消费消息队列第三实施例的示意图;图5为本专利技术客户端消费消息队列第四实施例的示意图;图6为本专利技术消息分配的方法一实施例的流程示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在本专利技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。参本文档来自技高网...

【技术保护点】
1.一种服务器,其特征在于,所述服务器包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的处理系统,所述处理系统被所述处理器执行时实现如下步骤:扫描步骤,在各消息消费者的业务系统接入消息系统后,启动扫描进程对各业务系统的客户端消费消息队列的积压值及每秒消费的消息量进行扫描;标记步骤,当有业务系统的客户端消费消息队列的积压值大于预定阈值,且该消费消息队列的积压值与每秒消费的消息量的比值大于预定比值后,将该业务系统的客户端作为第一客户端进行标记,并将标记信息发送给该第一客户端;重新分配步骤,当接收该第一客户端的重新分配消息队列的平衡请求后,在预定时间内控制该第一客户端与该消息队列的连接断开,并将该消息队列分配给除该第一客户端外消费该消息队列的各其他业务系统的客户端。

【技术特征摘要】
1.一种服务器,其特征在于,所述服务器包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的处理系统,所述处理系统被所述处理器执行时实现如下步骤:扫描步骤,在各消息消费者的业务系统接入消息系统后,启动扫描进程对各业务系统的客户端消费消息队列的积压值及每秒消费的消息量进行扫描;标记步骤,当有业务系统的客户端消费消息队列的积压值大于预定阈值,且该消费消息队列的积压值与每秒消费的消息量的比值大于预定比值后,将该业务系统的客户端作为第一客户端进行标记,并将标记信息发送给该第一客户端;重新分配步骤,当接收该第一客户端的重新分配消息队列的平衡请求后,在预定时间内控制该第一客户端与该消息队列的连接断开,并将该消息队列分配给除该第一客户端外消费该消息队列的各其他业务系统的客户端。2.根据权利要求1所述的服务器,其特征在于,所述处理系统被所述处理器执行时,还实现如下步骤:在各其他业务系统的客户端中,当有业务系统的客户端消费消息队列的积压值大于预定阈值,且该消费消息队列的积压值与每秒消费的消息量的比值大于预定比值后,将该业务系统的客户端作为第二客户端进行标记,并将本次标记信息发送给该第二客户端;当接收到该第二客户端的重新分配消息队列的平衡请求后,分析该第一客户端与该消息队列的连接断开的时间是否大于等于所述预定时间;若是,则在预定时间内控制该第二客户端与该消息队列的连接断开,并将该消息队列分配给除该第二客户端外消费该消息队列的各其他业务系统的客户端;若否,则在预定时间内控制该第二客户端与该消息队列的连接断开,并将该消息队列分配给除该第一客户端、第二客户端外消费该消息队列的各其他业务系统的客户端。3.根据权利要求1或2所述的服务器,其特征在于,所述处理系统被所述处理器执行时,还实现如下步骤:统计当前已被标记的业务系统的客户端的数量,计算当前已被标记的业务系统的客户端占消费该消息队列的所有业务系统的客户端的比例;分析该比例是否大于预设比例;若是,则发送提醒消息至消息管理系统,以供消息管理系统将提醒消息发送给预定的终端。4.根据权利要求1或2所述的服务器,其特征在于,所述处理系统被所述处理器执行时,还实现如下步骤:当接收到针对该消息队列的重启实例的消息时,将所有被标记的业务系统的客户端的标记及标记信息删除,并重新将该消息队列分配给消费该消息队列的各业务系统的客户端。5.一种消息分配的方法,其特征在于,所述消息分配的方...

【专利技术属性】
技术研发人员:詹泽
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1