2
我有一個應用程序從Kafka獲取消息並調用目標系統來更新舊版Oracle數據庫。停止Spring Stream Stream @StreamListener從目標系統關閉時收聽
我想啓用一個場景,如果目標系統關閉,將信息留在卡夫卡總線上,並且在給定的時間段內不處理它們。我正在考慮一些基於Hystrix斷路器的解決方案,但我找不到任何機制告訴Spring Cloud Stream「停止」事件監聽。我能想到的唯一另外一種選擇是斷路器是斷開的,將這些信息轉移到錯誤/重新處理主題,但這聽起來像是反模式。我應該只能暫停系統處理事件,這是微服務應用程序中pub/sub的整體優勢。
任何幫助將appriciated。
好主意!我會試一試。我的猜測是,這不會是一個全功能的斷路器解決方案,因爲我猜停止上下文會停止整個應用程序,但這是一個很好的起點。 – odedia
這很好。一旦我達到一定的錯誤閾值,我將停止上下文並進入一個簡單的while循環來測試服務器是否啓動(內部30秒)。一旦服務器啓動,我只需再次調用context.start()。因此,甚至不需要JMX或任何其他的東西,這個過程在這種情況下是一種自我修復,所有的消息都在卡夫卡繼續排隊。當然,我不能在ping方法中使用任何Spring功能,但沒關係,因爲它非常簡單。再次感謝! – odedia