簡體   English   中英

如何使用 Spring Cloud Stream 和 Kafka Streams Binder 暫停(打開/關閉)stream 處理?

[英]How can I pause (turn on/off) stream processing w/ Spring Cloud Stream & Kafka Streams Binder?

我正在使用 Spring Cloud Stream (3.0.4.RELEASE) 和 Kafka-Streams binder (3.0.0.RELEASE)。 我也在使用“函數式編程模型”(所以沒有@StreamListener 等)。 多么可愛的技術啊!

我需要能夠在一天中的某些時間暫停 stream 處理/消費新事件。 這為事件創建了一個“停電期”。 在“停電期”結束后,我將恢復 stream 處理。 因此,我希望能夠使用代碼暫停或打開/關閉 KStream 消費者。 我似乎無法管理它!

到目前為止我嘗試了什么? - 使用 /actuator/bindings 端點啟動/停止 kafka-streams 綁定。 似乎這不適用於 kafka-streams binder,僅適用於 kafka binder:(。

任何幫助將非常感激! 謝謝!

Kafka Streams binder 開箱即用不支持用於控制 stream 處理的執行器綁定端點。 這個用例以前出現

如果您可以在 Kafka 流處理器前面添加額外的輸入/輸出主題(以及潛在的延遲,具體取決於多種因素),那么有一種方法可以解決這個問題。 請參閱此處添加的評論。

基本思想是第一個處理器是一個簡單的直通處理器,它不使用 Kafka Streams,而是使用 Spring Cloud Stream 中基於標准消息傳遞的綁定器。 在那里,您可以使用執行器綁定端點控制事件流。 該處理器的 output 成為 Kafkfa Streams 處理器的輸入。

再次重申,實現此模式不需要太多代碼(可能 3 或 4 行),但根據應用程序的要求和吞吐量可能會影響性能。 不過,如果這不是問題,您可以嘗試這種模式。

希望這可以幫助。

暫無
暫無

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

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