架构指南

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

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

本节的目的是

  • 描述此集成的工作原理

  • 讨论正在发挥作用的架构问题

  • 为如何使用 Neo4j 和 Kafka 构建系统提供建议基础

客户应使用本文档中的信息来设计连接图和流的最佳管道。

挑战:图 ETL

来自 Kafka 的数据不是图。当我们将 JSON 文档或 Avro 加载到图中时,我们实际上是在从某些输入消息中提取相关数据位。然后,我们将这些相关位转换为“图片段”,然后将其加载到 Neo4j 中。

graph etl

使用 neo4j-streams 是一种图 ETL 形式。如果我们想以一种高性能且易于维护的方式执行此操作,则需要将这两个部分(提取和转换)分开并分别处理它们。如果我们正在从 Neo4j 生成记录并将其发送回 Kafka,则挑战仍然相同,只是方向相反。

Kafka 的流 ETL 并不是什么新鲜事——它是该平台的核心用例之一。对于 Neo4j-streams 来说,一个很大的复杂因素是,在 neo4j-streams 之前,很少有人为图做过这件事。