一种消息流量控制方法及装置制造方法及图纸

技术编号:17117506 阅读:55 留言:0更新日期:2018-01-25 00:22
本发明专利技术公开了一种消息流量控制方法,应用于消息中间件,该方法包括以下步骤:对自身的内存使用率进行监测,在监测过程中,如果达到设定的消息反馈触发条件,则将携带内存使用率的第一反馈消息发送给消息生产者,以使消息生产者根据第一反馈消息调整消息发送窗口的大小,并基于调整大小后的消息发送窗口通过消息中间件向消息消费者发送数据消息。应用本发明专利技术实施例所提供的技术方案,通过控制消息生产者的消息发送窗口大小,实现对数据消息的流量控制,在进行消息流量控制时,避免因丢弃数据消息导致重要的业务消息的丢失,提高消息中间件的服务能力。本发明专利技术还公开了一种消息流量控制装置,具有相应技术效果。

A method and device for message traffic control

The invention discloses a message flow control method applied to the message middleware, the method comprises the following steps: using rate monitoring on its own memory, in the monitoring process, if the message feedback to set the trigger conditions, will carry the memory usage by the first feedback message to the producer, in order to make the news producer according to the first feedback message message to adjust the size of the window, and a message window resized based on message middleware message to the consumer to send data messages. The application of the technical proposal provided by the embodiment of the invention, the control message producers message window size, realize the flow control of data messages, the message flow control, to avoid the loss of business data discarded news led to important information, improve the service ability of message middleware. The invention also discloses a message flow control device, which has the corresponding technical effect.

【技术实现步骤摘要】
一种消息流量控制方法及装置
本专利技术涉及消息处理
,特别是涉及一种消息流量控制方法及装置。
技术介绍
对于消息中间件来说,流量控制是消息通信中的重要技术。流量控制主要用来降低当数据消息的生产速度大于消费速度时,大量的数据消息将消息中间件撑爆的概率。目前,消息中间件的流量控制机制:当消息中间件的内存使用率达到限定值,慢速消费者的数据消息被保存在消息中间件的一个临时文件中。在应对超量数据消息时,通常会丢弃慢速消费者的数据消息,当消息中间件中存储的数据消息达到临界值时,首先将最早的数据消息丢弃。但是,这些丢弃的数据消息可能会包含重要的业务消息,可能会对该消息消费者产生影响。
技术实现思路
本专利技术的目的是提供一种消息流量控制方法及装置,以在进行消息流量控制时,避免因丢弃数据消息导致重要的业务消息的丢失,提高消息中间件的服务能力。为解决上述技术问题,本专利技术提供如下技术方案:一种消息流量控制方法,应用于消息中间件,包括:对自身的内存使用率进行监测;在监测过程中,如果达到设定的消息反馈触发条件,则将携带所述内存使用率的第一反馈消息发送给消息生产者,以使所述消息生产者根据所述第一反馈消息调整消息发送窗口的大小,并基于调整大小后的所述消息发送窗口通过所述消息中间件向消息消费者发送数据消息。优选地,还包括:如果接收到所述消息消费者回退的数据消息,则暂停向所述消息消费者发送数据消息的操作。优选地,还包括:如果所述消息消费者为慢速消费者,则将携带所述消息消费者的地址的第二反馈消息发送给所述消息生产者,以使所述消息生产者根据所述第二反馈消息,暂停通过所述消息中间件向所述消息消费者发送数据消息的操作。优选地,通过以下步骤确定所述消息消费者是否为慢速消费者:监测所述消息消费者对数据消息的消费速度;在存在未消费的数据消息时,如果所述消费速度小于预设第一阈值,则确定所述消息消费者为慢速消费者。优选地,在所述消费速度大于预设第二阈值时,还包括:将携带所述消息消费者的第三反馈消息发送给所述消息生产者,以使所述消息生产者根据所述第三反馈消息,恢复通过所述消息中间件向所述消息消费者发送数据消息的操作。一种消息流量控制装置,应用于消息中间件,包括:内存使用率监测模块,用于对自身的内存使用率进行监测;第一反馈消息发送模块,用于在监测过程中,如果达到设定的消息反馈触发条件,则将携带所述内存使用率的第一反馈消息发送给消息生产者,以使所述消息生产者根据所述第一反馈消息调整消息发送窗口的大小,并基于调整大小后的所述消息发送窗口通过所述消息中间件向消息消费者发送数据消息。优选地,还包括数据消息暂停发送模块,用于:如果接收到所述消息消费者回退的数据消息,则暂停向所述消息消费者发送数据消息的操作。优选地,还包括第二反馈消息发送模块,用于:如果所述消息消费者为慢速消费者,则将携带所述消息消费者的地址的第二反馈消息发送给所述消息生产者,以使所述消息生产者根据所述第二反馈消息,暂停通过所述消息中间件向所述消息消费者发送数据消息的操作。优选地,还包括慢速消费者确定模块,用于通过以下步骤确定所述消息消费者是否为慢速消费者:监测所述消息消费者对数据消息的消费速度;在存在未消费的数据消息时,如果所述消费速度小于预设第一阈值,则确定所述消息消费者为慢速消费者。优选地,还包括第三反馈消息发送模块,用于:在所述消费速度大于预设第二阈值时,将携带所述消息消费者的第三反馈消息发送给所述消息生产者,以使所述消息生产者根据所述第三反馈消息,恢复通过所述消息中间件向所述消息消费者发送数据消息的操作。应用本专利技术实施例所提供的技术方案,消息中间件对自身的内存使用率进行监测,在监测过程中,如果达到设定的消息反馈触发条件,则将携带内存使用率的第一反馈消息发送给消息生产者,以使消息生产者根据第一反馈消息调整消息发送窗口的大小,并基于调整大小后的消息发送窗口通过消息中间件向消息消费者发送数据消息。通过控制消息生产者的消息发送窗口大小,实现对数据消息的流量控制,在进行消息流量控制时,避免因丢弃数据消息导致重要的业务消息的丢失,提高消息中间件的服务能力。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中一种消息流量控制方法的实施流程图;图2为本专利技术实施例中一种消息流量控制装置的结构示意图。具体实施方式本专利技术的核心是提供一种消息流量控制方法,该方法可以应用于消息中间件。在实际应用中,消息生产者通过消息中间件(broker)向消息消费者发送数据消息。其中,消息生产者有一个依赖消息中间件内存的消息发送窗口(window),该消息发送窗口的大小(windowsize)可调整。消息生产者基于消息发送窗口将数据消息先发送给消息中间件,消息中间件向相应的消息消费者分发数据消息。每个消息消费者可以对应一个预读取文件夹(Prefetch),接收消息中间件分发的数据消息,并存储到预读取文件夹的预读取数据消息队列中。消息消费者在数据消息队列中获取数据消息,并对获取的数据消息进行消费处理。如果数据消息队列为空,则等待,如果数据消息队列不为空,且此时的预读取文件夹没有剩余存储空间时,即达到Prefetchlimit,则将不断到达的数据消息回退给消息中间件。消息中间件存储待分发给消息消费者的数据消息。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,图1为本专利技术实施例中一种消息流量控制方法的实施流程图,包括以下步骤:S101、对自身的内存使用率进行监测。消息中间件不断接收消息生产者发送的数据消息,或者接收消息消费者回退的数据消息,这样会导致内存使用率不断发生变化。消息中间件的内存资源是消息中间件为分发数据消息给消息消费者所必须的,也就是说,消息中间件的内存使用率不能过高,如果内存使用率过高,可能会导致消息中间件无法正常工作。所以,为了避免消息中间件的内存使用率过高,而影响消息中间件正常工作,可以对自身的内存使用率进行监测。S102、在监测过程中,如果达到设定的消息反馈触发条件,则将携带内存使用率的第一反馈消息发送给消息生产者,以使消息生产者根据第一反馈消息调整消息发送窗口的大小,并基于调整大小后的消息发送窗口通过消息中间件向消息消费者发送数据消息。在本实施例中,可以预先设置一个或者多个消息反馈触发条件,该消息反馈触发条件可以是针对消息中间件的内存使用率的,也可以是针对消息消费者的消费速度的,还可以是一个预设的时间周期,本专利技术实施例对此并不限定。需要说明的是,消息生产者有一个依赖消息中间件内存的消息发送窗口,该消息发送窗口的大小可以实时的进行调整,以便控制数据消息的生产速度。在监测过程中,如果达到设定的消息反馈触发条件,则将携带内存使用率的第一反馈消息发送本文档来自技高网
...
一种消息流量控制方法及装置

【技术保护点】
一种消息流量控制方法,其特征在于,应用于消息中间件,包括:对自身的内存使用率进行监测;在监测过程中,如果达到设定的消息反馈触发条件,则将携带所述内存使用率的第一反馈消息发送给消息生产者,以使所述消息生产者根据所述第一反馈消息调整消息发送窗口的大小,并基于调整大小后的所述消息发送窗口通过所述消息中间件向消息消费者发送数据消息。

【技术特征摘要】
1.一种消息流量控制方法,其特征在于,应用于消息中间件,包括:对自身的内存使用率进行监测;在监测过程中,如果达到设定的消息反馈触发条件,则将携带所述内存使用率的第一反馈消息发送给消息生产者,以使所述消息生产者根据所述第一反馈消息调整消息发送窗口的大小,并基于调整大小后的所述消息发送窗口通过所述消息中间件向消息消费者发送数据消息。2.根据权利要求1所述的消息流量控制方法,其特征在于,还包括:如果接收到所述消息消费者回退的数据消息,则暂停向所述消息消费者发送数据消息的操作。3.根据权利要求1或2所述的消息流量控制方法,其特征在于,还包括:如果所述消息消费者为慢速消费者,则将携带所述消息消费者的地址的第二反馈消息发送给所述消息生产者,以使所述消息生产者根据所述第二反馈消息,暂停通过所述消息中间件向所述消息消费者发送数据消息的操作。4.根据权利要求3所述的消息流量控制方法,其特征在于,通过以下步骤确定所述消息消费者是否为慢速消费者:监测所述消息消费者对数据消息的消费速度;在存在未消费的数据消息时,如果所述消费速度小于预设第一阈值,则确定所述消息消费者为慢速消费者。5.根据权利要求4所述的消息流量控制方法,其特征在于,在所述消费速度大于预设第二阈值时,还包括:将携带所述消息消费者的第三反馈消息发送给所述消息生产者,以使所述消息生产者根据所述第三反馈消息,恢复通过所述消息中间件向所述消息消费者发送数据消息的操作。6.一种消息流量控制装置,其特征在于,应用于消息中间件,包括:内存使用率监测模块...

【专利技术属性】
技术研发人员:房亚雯王蒴冷静
申请(专利权)人:山东中创软件商用中间件股份有限公司
类型:发明
国别省市:山东,37

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

1