簡體   English   中英

有沒有辦法為 kafka 生產者發送的消息設置延遲?

[英]Is there a way to set a delay for a message sent by a kafka producer?

或者甚至是一種延遲消費者收到消息的方法。 我需要每 90 秒后在 nodejs 中進行一次函數調用,所以我想為每個 kafka 消息添加 90 秒的延遲

您可以使用描述為的 KafkaProducer 配置linger.ms

“[...] 增加了少量的人為延遲——也就是說,生產者不會立即發送記錄,而是等待給定的延遲,以允許發送其他記錄,以便發送可以一起批處理。 [...]”

此配置默認為0 ,可以設置為任何long值。

根據您的生產者發送給主題的數據量,您可能還想增加配置batch.size 否則,如果在linger.ms的延遲結束之前達到此大小限制,則 KafkaProducer 將在 90 秒之前發送消息。

請記住,如果您增加linger.ms您可能還想增加delivery.timeout.ms 根據其文檔

“此配置的值應大於或等於request.timeout.mslinger.ms的總和。”

暫無
暫無

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

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