流转换

Kafka Connect Neo4j 连接器是将 Kafka 与 Neo4j 集成的推荐方法,因为 Neo4j 流不再处于积极开发中,并且在 Neo4j 4.4 版本之后将不再支持。

Kafka Connect Neo4j 连接器的最新版本可以 在这里找到。

将复杂的、大型有效负载流转换为更简单、更多数量的流是 Kafka 中处理网络传输复杂性的核心技术。有两种主要方法可以实现这一点,在 Neo4j 术语中,这类似于使用 Cypher 与使用遍历 API。

KSQL

KSQL 是一种编写类似 SQL 的查询的方法,这些查询可以动态地转换流。KSQL 推送查询不会像传统数据库那样返回,而是 KSQL 查询将流(可能是无限数量的消息)重新格式化为新的流。

KSQL 是将流从一种格式转换为另一种格式的最佳可用方法,如果您有复杂的主题有效负载(这将迫使您编写复杂的 Cypher),那么您应该考虑使用它作为核心技术。

KSQL 的缺点是它可能无法在所有地方使用。由于它是 Confluent Enterprise 功能,因此您不会在 Amazon MSK 或其他开源 kafka 安装中找到它。

KStreams

KStreams 是一个 Java API,允许您以任何可以设计的方式进行丰富的流转换。它更类似于 Neo4j 遍历 API,因为您可以想象任何操作,但需要自定义代码来实现。通常,KStreams 程序是小型应用程序,可以从一个主题读取,进行转换,然后写入另一个主题。因此,对于图而言,KStreams 与 KSQL 具有相同的架构目的,它只是更强大,并且需要自定义代码。

与仅适用于 Confluent Enterprise 和 Confluent Cloud 的 KSQL 相比,KStreams API 应该适用于任何开源 kafka。