[英]LMAX Disruptor Producer Incorrectly Wraparound + Overwrite Before Consumer Completes Read
[英]LMAX Disruptor remainingCapacity equals 0, even before some time waiting
我通過調用tryPublishEvent
function 將數據添加到 Disruptor。 在我等待 40 秒並嘗試通過以下計算檢查unprocessedDataCount
后:
long ringBufferUnProcessedCount = disruptor.getBufferSize()
- disruptor.getRingBuffer().remainingCapacity()
有時remainingCapacity
容量值等於 0,即使在獲取ringBufferUnProcessedCount
值之前我們等待 40 秒。 這個錯誤很少發生。
你不知道為什么會這樣嗎?
如果disruptor.getRingBuffer().remainingCapacity()
等於0,那么這意味着您的中斷器已滿並且您正在經歷背壓。
這可能是由兩件事引起的,要么其中一個eventHandlers
因某種原因被阻塞並且無法向前推進,要么eventHandlers
無法足夠快地處理事件以跟上新事件的產生速度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.