opensource4you / astraea

釋放kafka的無限潛能
Apache License 2.0
125 stars 45 forks source link

[METRICS] Not block on BeanObject receiving #1833

Closed chinghongfang closed 11 months ago

chinghongfang commented 11 months ago

原本作法在 reciever 中沒有 BeanObject 時,線程會等到有資料或者 3 秒鐘時限到。這個等待會影響到其他 receiver 取得 BeanObject

這隻 PR 改成不等待,receiver 當下沒有資料時會馬上回傳,換使用下一個 receiver 嘗試取得 BeanObejct

這隻 PR 會導致一個測試發生錯誤 (MetricSensor 數量),這項測試原本就應該要錯誤,但因為先前作法會讓 metricStore 較晚更新 MetricSensor (為了等待 metric),所以剛好 MetricSensor 數量符合預期 (0)。但這隻 PR 不等待 metric 取得,所以馬上就會更新 MetricSensor 導致測試時 MetricSensor 數量為 1 ,內容為 MetricSensor.EMPTY