rabbitmq 限制速度_关于消息队列速率的解决方案
生活随笔
收集整理的這篇文章主要介紹了
rabbitmq 限制速度_关于消息队列速率的解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
消息隊列在執行過程中, 如何統計消息隊列執行一輪的時間以及效率呢? 如果消息隊列中的任務變多, 則需要對應增加消費進程, 保證隊列不被堆積。
一、一般消息隊列生產和消費類型
1. 一次性任務消費
從某個地方一次性寫入多個任務到隊列, 消費完成后就算完成
2. 不斷寫入的任務消費
一般是判斷隊列任務少了, 就開始寫入任務, 隊列任務足夠則不寫入任務。對應的消費進程也是持久性進程。
3. 有任務則寫入, 然后持續消費
隨時可能有任務產生, 之后不斷消費。任務寫入時間不可控, 所以消費進程一般也得是持久性進程。
二、如何計算出來消費一輪的時間以及消費速率
1. 通過統計任務開始和結束, 計算消費總時間
當時最早想到的就是這種方式, 這種方式的優點:
統計相對準確
缺點:
流程復雜且耦合性高
如果中間有隊列暫停之類的時間, 也會被包含進時間內。
2. 通過讀取隊列狀態, 獲取到一定時間內消耗數量
根據兩次讀取的任務數, 得到固定時間內的消耗掉的任務數, 計算出來執行的任務。
3. 通過計算單個任務的執行時間, 然后根據運行的進程數, 來計算一輪的時間。
之后根據運行進程數, 以及任務總數, 來獲取到一輪的更新時間。 或者一段時間內取樣, 來計算需要的機器和進程數。
如果有其他更好的辦法, 希望可以一起交流下。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的rabbitmq 限制速度_关于消息队列速率的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 石斛叶的功效与作用、禁忌和食用方法
- 下一篇: 布尔类型的值包括( )和( )_布尔类型