繁体   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