消息队列在执行过程中, 如何统计消息队列执行一轮的时间以及效率呢? 如果消息队列中的任务变多, 则需要对应增加消费进程, 保证队列不被堆积。

一、一般消息队列生产和消费类型

1. 一次性任务消费

从某个地方一次性写入多个任务到队列, 消费完成后就算完成

2. 不断写入的任务消费

一般是判断队列任务少了, 就开始写入任务, 队列任务足够则不写入任务。对应的消费进程也是持久性进程。

3. 有任务则写入, 然后持续消费

随时可能有任务产生, 之后不断消费。任务写入时间不可控, 所以消费进程一般也得是持久性进程。

二、如何计算出来消费一轮的时间以及消费速率

1. 通过统计任务开始和结束, 计算消费总时间

当时最早想到的就是这种方式, 这种方式的优点:

统计相对准确

缺点:

流程复杂且耦合性高

如果中间有队列暂停之类的时间, 也会被包含进时间内。

2. 通过读取队列状态, 获取到一定时间内消耗数量

根据两次读取的任务数, 得到固定时间内的消耗掉的任务数, 计算出来执行的任务。

3. 通过计算单个任务的执行时间, 然后根据运行的进程数, 来计算一轮的时间。

之后根据运行进程数, 以及任务总数, 来获取到一轮的更新时间。 或者一段时间内取样, 来计算需要的机器和进程数。

如果有其他更好的办法, 希望可以一起交流下。

rabbitmq 限制速度_关于消息队列速率的解决方案相关推荐

  1. rabbitmq 限制速度_=(:) RabbitMQ详解

    本篇包含了RabbitMQ概念的一些东西,下篇会整理出SpringBoot结合RabbitMQ的使用案例. 目录 一.MQ概述 1.什么是消息 2.什么是消息队列 3.MQ的特点 二.MQ适用场景 1 ...

  2. rabbitmq 限制速度_如何控制消息队列的消费速度?

    一.需求: 比如我消费1000个队列.我将速度等级分为100个等级. 1倍速,每小时消费800个. 100倍速就是每小时消费 800*100个. 这样就可以计算每个队列的消费间隔,比如1倍速间隔是 4 ...

  3. rabbitmq 限制速度_技术干货分享:RabbitMQ消息积压的几种解决思路

    在日常工作中使用RabbitMQ偶尔会遇不可预料的情况导致的消息积压,一般出现消息积压基本上分为几种情况: 消费者消费消息的速度赶不上生产速度,这种问题主要是业务逻辑没设计好消费者和生产者之间的平衡, ...

  4. rabbitmq接收不到消息_分布式消息队列:如何保证消息的可靠性传输

    rabbitmq (1)生产者弄丢了数据 生产者将数据发送到rabbitmq的时候,可能数据就在半路给搞丢了,因为网络啥的问题,都有可能. 此时可以选择用rabbitmq提供的事务功能,就是生产者发送 ...

  5. 用户请求队列化_分布式消息队列选型分析

    高并发架构是成为架构师的必修课,而消息队列,则是王冠上最闪亮的那颗明珠!能否驾驭消息队列这款高并发神器,亦成为架构师的试金石.本文将从队列本质.技术选型两个方面,给大家整理下个人心得,希望能对大家有所 ...

  6. RabbitMQ 中 7 种消息队列

    点击关注公众号,Java干货及时送达 七种模式介绍与应用场景 简单模式(Hello World) 做最简单的事情,一个生产者对应一个消费者,RabbitMQ相当于一个消息代理,负责将A的消息转发给B ...

  7. rabbitmq java实例_RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)

    转载http://blog.csdn.net/u013142781 一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式 ...

  8. python消息队列celery高可用_分布式消息队列-Celery

    怎么能不恨呢,在我发现自己是恶鬼的时候,在我最绝望最虚弱的时候,这个世上最该跟我在一起的人却用刀把我的心刺穿了 Celery 是 Distributed Task Queue,分布式任务队列.分布式决 ...

  9. RabbitMQ中7种消息队列和保姆级代码演示!

    blog.csdn.net/qq_32828253/article/details/110450249 七种模式介绍与应用场景 简单模式(Hello World) 做最简单的事情,一个生产者对应一个消 ...

最新文章

  1. 2016/05/03(接口 买票 临界资源同步锁)
  2. 修改initrd做miniLinux
  3. golang中的接口
  4. eclipse常用快捷键汇总
  5. 简简单单日赚200元,当日结算
  6. 【学习笔记】Python - NumPy
  7. 窗体间传值和窗体间互操作
  8. [译]模型-视图-提供器 模式
  9. 图论 —— 图的连通性 —— Kosaraju 算法
  10. 计算机课奖金计算步骤,计算机二级excel真题:计算员工奖金
  11. EXE反编译方法及工具
  12. 电梯轿厢预留人脸识别接口和指纹接口_奥的斯电梯 gt;LSFAULT ! 故障现象捕捉
  13. 手机变速齿轮_变速齿轮手机版下载|变速齿轮游戏加速器官方最新版v1.2下载 _当游网...
  14. DSP的cmd文件详解
  15. python:epub文件批量转TXT
  16. Unity脚本设置Animator单个状态的speed
  17. 各种内部排序方法及其比较实验报告
  18. 搜狗输入法 - 自定义短语
  19. python基础——类型转换
  20. 小程序中实现关注公众号

热门文章

  1. 关于CefSharp的坎坷之路
  2. C# Owin 创建与测试自己的中间件Middleware
  3. WebConfig 加密解密的原理是什么?
  4. 博客园首页博问闪存新随笔联系订阅管理 随笔- 252 文章- 0 评论- 45 HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法...
  5. Hibernate Query Language(HQL)。
  6. 在linux中完整路径中的目录间分隔符是,路径分隔符(斜杠/与反斜杠\的问题)
  7. postman发送post请求,服务器日志确保GET请求错误“ PageNotFound:208 Request method ‘GET‘ not supported”
  8. Json对象与Json字符串的转化、JSON字符串与Java对象的转换
  9. 云上如何做冷热数据分离
  10. 举例详解PHP归并排序的实现