簡體   English   中英

如何在 Kafka Streams 中正確標記消息

[英]How to properly flag a message in Kafka Streams

我正在嘗試在我的 Kafka Streams 拓撲中監視來自特定輸入主題的消息的處理時間。 為此,我在拓撲的末尾添加了一個轉換器,它訪問消息的上下文時間戳並記錄經過的時間。 這非常適合簡單的線性/單輸入主題案例。

但是,假設我有以下拓撲:

在此處輸入圖像描述

假設我想監控A -> Out路徑而不是B -> Out 我面臨的障礙是,因為我經歷了一個連接,轉換器看到的上下文主題既不是主題 A也不是主題 B ,而是連接的內部主題,所以我不能使用這個上下文信息來區分。 因此問題是:

哪種是標記來自主題 A 的消息的正確方法?

  1. 一種可能性是將自定義 header 添加到消息上下文。 在所提出示例的特定情況下,我們可以在從主題 A消費后添加一個轉換器,添加一些特定的 header,這將是加入后監控轉換器的過濾條件的基礎。

  2. 另一種可能性是在消息內容本身中標記消息。 在這種情況下,從主題 A消費后的轉換器將使用 boolean 標志擴展消息值,該標志必須傳播到監控轉換器。

兩種選擇都有利有弊,應根據具體用例加以考慮。 通過上下文標頭進行標記的影響最小,但需要反序列化標頭以評估基於標記的過濾條件,同時標記消息內容本身使條件更易於評估,但可能需要在拓撲的其他點進行一些重構/調整。

暫無
暫無

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

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