簡體   English   中英

破壞者行為 - 在使用新數據之前耗盡整個緩沖區

[英]Disruptor behavior - Drain full buffer before consuming new data

我有以下情況。

我們在 K8s 上的 Cloud 中對我們的應用程序進行負載測試。 我們的入站消息來自 Kafka,我們正在回信給 Kafka。 我們的架構是這樣的,Kafka 線程將消息推送到中斷器(阻塞等待策略,512 大小),業務線程將消息從中斷器中取出進行處理。 為了模擬負載,我們在應用程序未運行時為 Kafka 主題(4 個分區)准備了接近 500K 的消息。 然后我們啟動我們的應用程序來測量負載。

我們看到的是中斷器完全填滿,剩余容量為 0,然后開始耗盡,這種情況一遍又一遍地繼續。

這是正確的行為還是我們以錯誤的方式使用破壞者? 請分享你的想法?

您應該在將消息排入隊列之前啟動中斷程序。 一旦事件發布到環形緩沖區,事件處理程序就會對其進行處理。

任何時候在環形緩沖區中等待的事件數量將取決於生產者和消費者處理時間之間的不平衡。

請注意,當環形緩沖區已滿時,您將在使用next()方法在環形緩沖區中聲明序列時遇到背壓,並且您的生產者線程將被阻塞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM