簡體   English   中英

如何有條件地輪詢來自 Kafka 主題的消息

[英]How to conditionally poll messages from Kafka Topic

我在 MongoDB 數據庫中有一些任務通知。 每個任務都有一個 due_date 和提醒標志。 我正在將這些任務推送到 Kafka 主題。 有一個 Node JS 應用程序從該主題進行輪詢,並根據 due_date 和提醒標志將通知推送到前端應用程序。 due_date 可能已過期或即將到來。

我們需要從 Kafka 向 Node App 發送通知,只要這些基於時間的條件發生,它就會監聽:

  1. Reminder = true 並且在截止日期前 X 時間
  2. 截止日期 = 現在
  3. 任務仍然存在並且已過期

卡夫卡如何做到這一點?

數據庫到 Kafka 的交互應該通過源連接器進行。 只要基礎表發生變化,數據庫連接器就可以將事件發布到 Kafka。 因此,如果創建新行或更新任何列。

因此,理想的解決方案是在表中引入更多的列或一個新的實用程序表,其中包含用於標識您上面提到的條件的列。 可能是像“IsDueDate”這樣的列,它可以是 boolean 類型。 在數據庫(不確定 Mongo,但大多數數據庫都有此選項)或任何批處理系統(如 Spring 批處理/啟動應用程序)中創建一個調度程序來驗證您的數據並填充這些列。

一旦更新了這些列,它將通過連接器觸發一條消息到 Kafka,並且您的前端應用程序輪詢 Kafka 以獲取新消息,最終可以在有效負載中使用這些標志來識別觸發此事件的條件,您可以在前端執行這些操作。

暫無
暫無

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

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