簡體   English   中英

如何加入多個Kafka主題?

[英]How to join multiple Kafka topics?

所以我有...

  • 具有一般應用程序日志 (log4j) 的第一個主題。 存儲諸如 HTTP API 請求/響應和警告、異常等內容……可以有多個日志關聯到一個邏輯業務請求。 (這些日志彼此之間發生在幾秒鍾內)
  • 第二個主題包含來自上述業務請求的命令,其他服務將對其執行操作。 (這些命令也會在幾秒鍾內發生,但可能會從原始請求開始幾分鍾)
  • 第三個主題包含從其他服務的操作生成的事件。 (大多數事件在幾秒鍾內完成,但有些可能需要 3-5 天才能收到)

因此,單個邏輯業務請求可以通過微服務相互傳遞的 uuid 關聯多個日志、命令和事件。

那么,有哪些技術/模式可用於閱讀這 3 個主題並將它們作為一個 json 文檔連接在一起,然后將它們轉儲到 Elasticsearch?

流媒體?

您可以使用 Kafka Streams 或 KSQL 來實現這一點。 哪一個取決於您對 Java 的偏好/經驗,以及您想要執行的連接的具體細節。

KSQL是 Apache Kafka 的 SQL 流引擎,僅使用 SQL 就可以針對 Kafka 主題聲明流處理應用程序。 您可以過濾、豐富和聚合主題。 目前僅支持流表連接。 您可以在此處查看本文中的示例

Kafka Streams API是 Apache Kafka 的一部分,是一個 Java 庫,可用於在 Apache Kafka 中對數據進行流處理。 它實際上是 KSQL 的基礎,支持更大的處理靈活性,包括流-流連接

您可以使用 KSQL 加入流。

  1. KSQL 表/流中有 2 個構造。
  2. 目前,Join 支持 Stream 和 table。 所以你需要確定哪個適合什么?
  3. 您不需要為連接開窗。

使用 KSQL 的好處。

  1. KSQL 很容易設置。
  2. KSQL 是一種 SQL 語言,可幫助您快速查詢數據。

退稅。

  1. 它尚未准備好生產,但將在 2018 年 4 月發布。
  2. 它現在的小馬車,但肯定會在幾個月內改善。

請看一看。

https://github.com/confluentinc/ksql

暫無
暫無

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

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