[英]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.ms
和linger.ms
的總和。”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.