簡體   English   中英

我可以將task.commit.ms設置為每1ms嗎?

[英]Can I set task.commit.ms to every 1ms?

我有一個Apache-Samza項目,重復數據有問題。

這是我的檢查點配置:

task.checkpoint.factory=org.apache.samza.checkpoint.kafka.KafkaCheckpointManagerFactory
task.checkpoint.system=kafka
task.checkpoint.replication.factor=2
task.commit.ms=20000

在文檔上,我們可以閱讀以下內容:

如果配置了task.checkpoint.factory,則此屬性確定編寫檢查點的頻率。 該值是檢查點之間的時間,以毫秒為單位。 檢查點的頻率會影響故障恢復:如果容器意外失敗(例如,由於崩潰或機器故障)並重新啟動,它將在最后一個檢查點恢復處理。 自失敗容器上的最后一個檢查點以來處理的所有消息都將再次處理。 更加頻繁地執行檢查點操作可以減少可能被處理兩次的消息數量,但同時也會占用更多資源。

所以我可以將task.commit.ms=20000更改為250ms或1ms。 是好是壞? 我有一個很好的群集。

為什么我需要更改此設置,因為這個Samza(工人)每周崩潰1-3次。 現在,臨時解決方案是每次提交偏移量。


參考文獻:

阿帕奇-薩姆扎

Apache-Samza配置

我知道我的解決方案不是所有問題的解決方案。 task.commit.ms更改為task.shutdown.ms=5000的相同內容。

Atlas-Samza配置關閉

暫無
暫無

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

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