【技术实现步骤摘要】
消息处理方法、设备及系统
[0001]本申请涉及通信
,尤其涉及一种消息处理方法、设备及系统。
技术介绍
[0002]消息队列(Message Queue,MQ)是一种基于先进先出(FIFO)的队列模型中间件。消息发送后可以立即返回,由消息系统确保消息的可靠传递。消息生产者(Producer)只需将消息发布到MQ中,无需管谁来取消息和如何取消息;消息消费者(Consumer)只管从MQ中取消息而不用管是谁发布的以及如何发布的。
[0003]对于消息消费者来说,一个消息消费者需要消费成千上万个MQ。在现有技术中,经常需要为每个MQ单独分配线程进行消息消费,需要同时创建、启动大量的消费线程,消耗大量的计算机资源。
技术实现思路
[0004]本申请的多个方面提供一种消息处理方法、设备及系统,用以实现资源复用,降低计算机资源消耗。
[0005]本申请实施例提供一种消息处理方法,包括:
[0006]根据本地缓存区中的至少一个缓存队列的存储能力,利用第一线程池从存储节点获取消息;
[0007]将获取的消息缓存至所述本地缓存区对应的缓存队列;
[0008]根据所述至少一个缓存队列承载的消费速度,利用第二线程池从所述本地缓存区获取消息消费者需要消费的目标消息;
[0009]将所述目标消息提供给消息消费者,以供所述消息消费者消费所述目标消息。
[0010]本申请实施例还提供一种消息处理系统,包括:存储节点和消息消费节点;
[0011]所述存储节点,设 ...
【技术保护点】
【技术特征摘要】
1.一种消息处理方法,其特征在于,包括:根据本地缓存区中的至少一个缓存队列的存储能力,利用第一线程池从存储节点获取消息;将获取的消息缓存至所述本地缓存区对应的缓存队列;根据所述至少一个缓存队列承载的消费速度,利用第二线程池从所述本地缓存区获取消息消费者需要消费的目标消息;将所述目标消息提供给消息消费者,以供所述消息消费者消费所述目标消息。2.根据权利要求1所述的方法,其特征在于,还包括:针对所述至少一个缓存队列中的任一缓存队列,根据所述任一缓存队列承载的消费速度、预设的子队列组承载的消费速度和消费优先级数量,将所述任一缓存队列划分为至少一个缓存子队列;同一缓存子队列用于缓存处于同一消费优先级的消息;根据所述至少一个缓存子队列组对应的消费优先级,将所述至少一个缓存子队列划分至至少一个子队列组;其中,每个子队列组包含所有消费优先级的缓存子队列。3.根据权利要求2所述的方法,其特征在于,所述存储节点中的至少一个消息子队列与所述至少一个缓存子队列相对应;所述根据本地缓存区中的至少一个缓存队列的存储能力,利用第一线程池从存储节点获取消息,包括:根据所述至少一个缓存队列分别对应的至少一个缓存子队列的存储能力,生成至少一个消息拉取任务;利用所述第一线程池执行所述至少一个消息拉取任务,以从存储节点的相应消息子队列中获取所述至少一个消息拉取任务分别所需的消息。4.根据权利要求3所述的方法,其特征在于,还包括:针对任一缓存子队列,若未从所述存储节点获取所述任一缓存子队列对应的消息拉取任务所需的消息的连续次数达到设定阈值,降低所述第一线程池执行所述任一缓存子队列对应的消息拉取任务的频率。5.根据权利要求2所述的方法,其特征在于,所述根据所述至少一个缓存队列承载的消费速度,利用第二线程池从所述本地缓存区获取消息消费者需要消费的目标消息,包括:根据所述至少一个缓存队列分别对应的子队列组承载的消费速度,生成多个消息调度任务;利用所述第二线程池按照所述消息调度任务对应的执行周期,周期性地执行每个子队列组对应的消息调度任务;在执行所述执行每个子队列组对应的消息调度任务的过程中,从所述本地缓冲区对应的子队列组中获取当前周期执行的消息调度任务所需的消息,作为所述目标消息。6.根据权利要求5所述的方法,其特征在于,所述根据所述至少一个缓存队列分别对应的子队列组承载的消费速度,生成多个消息调度任务,包括:针对任一子队列组,根据所述任一子队列组的消费速度,确定所述任一子队列组当次需要被消费的消息数量N;N为正整数;根据所述任一子队列组当次需要被消费的消息数量N,生成所述任一子队列组对应的消息调度任务。
7.根据权利要求6所述的方法,其特征在于,所述针对任一子队列组,根据所述任一子队列组的消费速度,确定所述任一子队列组当...
【专利技术属性】
技术研发人员:曹栋尧,罗自荣,
申请(专利权)人:阿里巴巴中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。