[英]Using Kafka Streams just as a state store in a Kafka Consumer App
我目前正在使用Spring Kafka Consumer API開發Spring Boot應用程序。
我到達某個主題的每條消息都需要轉換為新的對象類型,並具有來自其他主題的其他屬性。 目前,這些其他主題尚未開發,我們正在使用內存數據的模擬版本來處理請求。
例如,一條新的“購物訂單”消息到達,但是我正在使用模擬的“客戶”對象和模擬的“項目”對象以處理訂單。 計划是使用真實的客戶主題和真實的項目主題。
另外,當前,該應用程序僅是用於獲得新訂單的Spring Kafka偵聽器。 偵聽器調用一個spring bean方法,該方法處理訂單並創建一個新對象,該對象使用與我上面提到的相同的模擬方法寫入另一個名為customer-order的輸出主題。
我們目前正在考慮改進此應用程序的體系結構。 我一直在閱讀卡夫卡流。 我在網上閱讀的關於流的文檔僅采用簡單的示例,例如字數統計,聯接等。由於對流的了解有限,因此我不打算使用諸如計算總數之類的功能。
我已經想到了該體系結構的一些選擇...
你有什么建議? 1,2還是3? 將Streams用於這種解決方案是一個好主意嗎? 將這種實現方式轉換為使用Kafka流媒體有什么好處? 還是我最好還是和2呆在一起?
1對我來說聽起來很奇怪。 您可以保留一個KafkaStreams應用程序通過Interactive Queries公開狀態存儲,但是看起來更像是2。您還必須考慮如何部署實例並確保Spring部分和KafkaStreams之間的共分區。部分。
我完全不會在Kafka Streams中完成任何操作,除非您有一些非常復雜的邏輯,無法使用當前的API來實現,但如果您無法做到這一點,我會感到很驚訝。 實際上,您所描述的內容聽起來像是它的常規應用程序(警告是不了解其他需求,例如時間,預期數量等)。
優點:
缺點:
這不是一個完整的列表,但這是我腦海中最重要的一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.