重试和错误处理
Kafka Connect Neo4j 连接器是将 Kafka 与 Neo4j 集成的推荐方法,因为 Neo4j Streams 已经不再处于积极开发状态,并且在 Neo4j 4.4 版本之后将不再支持。 Kafka Connect Neo4j 连接器的最新版本可以在这里找到 这里。 |
由 neo4j-streams 处理的消息可能会在 Neo4j 中引发事务错误。通常,neo4j-streams 不支持重试,因此需要仔细考虑以设计一个可行的策略。例如
-
错误可能是由于写入关系时并行度过高和节点锁定导致的;在这种情况下,与重试相比,不同的写入机制是更好的选择
-
如果 Neo4j-streams 发展到支持重试,则需要具有可配置的策略来确定重试次数、何时退避等等。这将使情况变得非常复杂
-
如果在来自 Kafka 的持续负载下发生一系列错误(例如,在领导者重新选举期间),您可能会遇到一系列重试,这基本上会演变成对集群的拒绝服务攻击。
由于所有这些原因,neo4j-streams 不支持重试,而是将错误消息(根据用户的选择)发送到可配置的死信队列 (DLQ)。如果您的应用程序需要重试逻辑,您可能会考虑在 DLQ 上使用下游逻辑来处理它们,具体方式视情况而定。