首页 > 其他分享 >WorkQueue

WorkQueue

时间:2023-11-26 16:44:36浏览次数:23  
标签:25 消费者 处理 队列 消息 WorkQueue

Work queues,也被称为(Task queues),任务模型。简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息

 

当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。

此时就可以使用work 模型,多个消费者共同处理消息处理,速度就能大大提高了。

 发50条测试后:

可以看到消费者1很快完成了自己的25条消息。消费者2却在缓慢的处理自己的25条消息。

也就是说消息是平均分配给每个消费者,并没有考虑到消费者的处理能力。这样显然是有问题的。

可以添加配置,让消耗一个后再获取下一个:

spring:
  rabbitmq:
    listener:
      simple:
        prefetch: 1 # 每次只能获取一条消息,处理完成才能获取下一个消息

 

Work模型的使用:

  • 多个消费者绑定到一个队列,同一条消息只会被一个消费者处理

  • 通过设置prefetch来控制消费者预取的消息数量

标签:25,消费者,处理,队列,消息,WorkQueue
From: https://www.cnblogs.com/daitu66/p/17857449.html

相关文章

  • SpringAMQP-WorkQueue模型
          ......
  • workqueue、tasklet
      Linux内核中断处理“下半部”机制(上)(超详细~)-知乎(zhihu.com)  内核把中断处理分为两部分:上半部(top-half)和下半部(bottom-half),上半部(就是中断服务程序)内核立即执行,而下半部(就是一些内核函数)留着稍后处理。首先:一个快速的“上半部”来处理硬件发出的请求,它......
  • 设备驱动-10.中断子系统-4.2中断线程化处理-workqueue
    1工作队列workqueue引入定时器、tasklet,它们都是在中断上下文中执行,它们无法休眠。那么如果一旦中断要处理耗时复杂的操作,就会显得很卡。那么使用内核线程来处理这些耗时的工作,那就可以解决系统卡顿的问题。Linux内核中工作队列workqueue就是线程化处理的一种方式,“工作队列”(......
  • 2023.7.16 linux 软中断Softirqs 队列 Workqueues 并发管理队列cmwq
    Implementingwork-deferringmechanisms 延期任务Softirqs:Executedinanatomiccontext # kernel/softirq.c ;<linux/interrupt.h>.Tasklets:Executedinanatomiccontext Workqueues:Executedinaprocesscontext structsoftirq......
  • Kubernetes编程——client-go基础—— 工作队列(workqueue)
    工作队列(workqueue[wɜːk][kjuː])https://github.com/kubernetes/kubernetes/tree/release-1.27/staging/src/k8s.io/client-go/util/workqueue我理解意思是说:这里说的"工作队列"指的一个数据结构。用户可以按照队列所预定义的顺序向这个队列中添加和取出......
  • 12 workqueue
    代码编程指南构造workqueue将workqueue放入队列,开始调度1工作机制内核线程(while(1))中对去判定是否存在workqueue;如果不存在择休眠;如果存在workqueue则等待wakeup事......
  • WorkQueue
    工作队列(WorkQueue)在控制器编写中使用得非常频繁,通常使用informer.AddEventHandler函数监听资源对象的事件,并设置事件触发时的回调函数。在回调函数中,将资源对象的key放入W......
  • Java并发编程——ForkJoinPool之WorkQueue
    一、ForkJoinPoolForkJoinPool是JDK7引入的,由DougLea编写的高性能线程池。核心思想是将大的任务拆分成多个小任务(即fork),然后在将多个小任务处理汇总到一个结果上(即jo......
  • WorkQueue 源码分析
    WorkQueue源码分析前面我们把Informer的整个流程完整分析了一遍,我们可以通过监听对象的变化,将资源对象写入到事件处理器的回调函数中,但是如果我们直接在回调函数中处理......
  • workqueue机制
    软硬件协同设计是未来发展的主流,软硬件的界限越来越模糊,软硬件的设计思想是相通的,实现方法是各异的,实现的结果上当然也存在较大差别,因此,很有必要做好软硬件的协同设计。什......