溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

關(guān)于消息隊(duì)列速率的解決方案

發(fā)布時(shí)間:2020-07-16 07:40:18 來(lái)源:網(wǎng)絡(luò) 閱讀:4596 作者:AndyMac 欄目:開(kāi)發(fā)技術(shù)

消息隊(duì)列在執(zhí)行過(guò)程中, 如何統(tǒng)計(jì)消息隊(duì)列執(zhí)行一輪的時(shí)間以及效率呢? 如果消息隊(duì)列中的任務(wù)變多, 則需要對(duì)應(yīng)增加消費(fèi)進(jìn)程, 保證隊(duì)列不被堆積。

一、一般消息隊(duì)列生產(chǎn)和消費(fèi)類型

1. 一次性任務(wù)消費(fèi)

從某個(gè)地方一次性寫入多個(gè)任務(wù)到隊(duì)列, 消費(fèi)完成后就算完成

2. 不斷寫入的任務(wù)消費(fèi)

一般是判斷隊(duì)列任務(wù)少了, 就開(kāi)始寫入任務(wù), 隊(duì)列任務(wù)足夠則不寫入任務(wù)。對(duì)應(yīng)的消費(fèi)進(jìn)程也是持久性進(jìn)程。

3. 有任務(wù)則寫入, 然后持續(xù)消費(fèi)

隨時(shí)可能有任務(wù)產(chǎn)生, 之后不斷消費(fèi)。任務(wù)寫入時(shí)間不可控, 所以消費(fèi)進(jìn)程一般也得是持久性進(jìn)程。

二、如何計(jì)算出來(lái)消費(fèi)一輪的時(shí)間以及消費(fèi)速率

1. 通過(guò)統(tǒng)計(jì)任務(wù)開(kāi)始和結(jié)束, 計(jì)算消費(fèi)總時(shí)間

關(guān)于消息隊(duì)列速率的解決方案

關(guān)于消息隊(duì)列速率的解決方案

當(dāng)時(shí)最早想到的就是這種方式, 這種方式的優(yōu)點(diǎn):

  1. 統(tǒng)計(jì)相對(duì)準(zhǔn)確

缺點(diǎn):

  1. 流程復(fù)雜且耦合性高
  2. 如果中間有隊(duì)列暫停之類的時(shí)間, 也會(huì)被包含進(jìn)時(shí)間內(nèi)。

2. 通過(guò)讀取隊(duì)列狀態(tài), 獲取到一定時(shí)間內(nèi)消耗數(shù)量

關(guān)于消息隊(duì)列速率的解決方案
根據(jù)兩次讀取的任務(wù)數(shù), 得到固定時(shí)間內(nèi)的消耗掉的任務(wù)數(shù), 計(jì)算出來(lái)執(zhí)行的任務(wù)。

3. 通過(guò)計(jì)算單個(gè)任務(wù)的執(zhí)行時(shí)間, 然后根據(jù)運(yùn)行的進(jìn)程數(shù), 來(lái)計(jì)算一輪的時(shí)間。

關(guān)于消息隊(duì)列速率的解決方案

之后根據(jù)運(yùn)行進(jìn)程數(shù), 以及任務(wù)總數(shù), 來(lái)獲取到一輪的更新時(shí)間。 或者一段時(shí)間內(nèi)取樣, 來(lái)計(jì)算需要的機(jī)器和進(jìn)程數(shù)。

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


關(guān)于消息隊(duì)列速率的解決方案

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI