5

所以我有...

  • 第一个具有通用应用程序日志 (log4j) 的主题。存储诸如 HTTP API 请求/响应和警告、异常等内容……可以有多个日志与一个逻辑业务请求相关联。(这些日志在几秒钟内发生)
  • 第二个主题包含来自上述业务请求的命令,其他服务对其采取行动。(这些命令也会在几秒钟内发生,但可能距离原始请求几分钟)
  • 第三个主题包含由其他服务的操作生成的事件。(大多数事件在几秒钟内完成,但有些可能需要 3-5 天才能收到)

因此,单个逻辑业务请求可以通过微服务相互传递的 uuid 关联多个日志、命令和事件。

那么有哪些技术/模式可用于阅读这 3 个主题并将它们全部连接为一个 json 文档,然后将它们转储到 Elasticsearch 中?

流媒体?

4

3 回答 3

6

您可以使用 Kafka Streams 或 KSQL 来实现此目的。哪一个取决于您对 Java 的偏好/经验,以及您想要执行的连接的细节。

KSQL是 Apache Kafka 的 SQL 流引擎,仅使用 SQL,您就可以针对 Kafka 主题声明流处理应用程序。您可以过滤、丰富和聚合主题。目前仅支持流表连接。您可以在此处查看本文中的示例

Kafka Streams API是 Apache Kafka 的一部分,它是一个 Java 库,可用于在 Apache Kafka 中对数据进行流处理。它实际上是基于 KSQL 构建的,并且支持更大的处理灵活性,包括流-流连接

于 2018-03-12T09:16:04.700 回答
2

您可以使用 KSQL 加入流。

  1. KSQL 表/流中有 2 个构造。
  2. 目前,流和表支持 Join。所以你需要确定哪个适合什么?
  3. 您不需要为连接开窗。

使用 KSQL 的好处。

  1. KSQL 易于设置。
  2. KSQL 是一种 SQL 语言,可帮助您快速查询数据。

退税。

  1. 它尚未准备好生产,但在 2018 年 4 月发布即将发布。
  2. 它现在的小车,但肯定会在几个月内得到改善。

请看一看。

https://github.com/confluentinc/ksql

于 2018-03-20T16:13:32.800 回答
-2

问题相同 是否可以在 Confluent KSQL 查询中使用多个左连接?尝试加入超过 1 个表的流,如果没有,那么解决方案是什么? 并且似乎您不能在同一个查询中拥有多个连接键。

于 2018-09-28T17:49:47.530 回答