重大变更

本节介绍 Neo4j 1.7 驱动程序与 4.x 驱动程序之间的重大变更。

配置

  • 驱动程序的加密配置默认值现为 false,这意味着驱动程序默认只尝试纯文本连接。连接到加密服务(如 Neo4j Aura)时,必须将加密选项设置为启用。

  • 当显式启用加密时,默认行为是信任操作系统信任的证书颁发机构(CA)。这意味着,默认情况下,连接到使用自签名证书的服务器时,加密连接会因证书验证失败而无法建立。

  • 当启用加密时,默认开启主机名验证。

有关更多信息,请参阅 《Neo4j 驱动程序手册 4.0》→ 配置

移除版本后缀

驱动程序包名中已移除 v1。例如,在 Java 驱动程序中,所有公共 API 现在位于 org.neo4j.driver 包中,而不是旧的 org.neo4j.driver.v1

连接 URI 方案

Neo4j 4.0 为所有部署拓扑提供路由接口,允许在所有部署中使用 neo4j:// URI。

Neo4j 3.x 独立实例不提供路由接口。

  • neo4j:// 方案取代了 bolt+routing://,可用于集群和单实例配置。这仅是重命名,neo4j:// URI 仍然可以用于与 Neo4j 3.x 集群通信。

  • bolt:// 方案用于直接连接到特定的 Neo4j 服务器。但是,对于独立机器,不再需要此方案。

  • bolt:// 方案主要在不针对整个服务,而是针对特定机器(例如因果集群中的某台服务器或单实例环境中的那台服务器)时才有用。

  • 推荐的驱动程序连接 URI 方案如下:

    表 1. 推荐的驱动程序连接 URI 方案。

    4.0 驱动程序

    1.7 驱动程序

    4.0 Neo4j

    单实例

    neo4j

    bolt

    集群核心成员

    neo4j

    neo4j (bolt+routing)

    集群只读副本

    neo4j

    bolt

    3.5 Neo4j

    单实例

    bolt

    bolt

    集群核心成员

    neo4j

    neo4j (bolt+routing)

    集群只读副本

    bolt

    bolt

驱动程序方法的变更

  • 对于同时实现了同步和异步方法的驱动程序,异步方法已被提取并放入 AsyncSession 中,而同步方法保留在 Session 中。此变更确保了阻塞式和非阻塞式 API 永远不会混合使用。

  • Driver#session 方法现在使用会话配置对象或选项构建器,而不是方法参数。

  • 书签(Bookmark)已从字符串和/或字符串列表更改为 Bookmark 对象。

  • 对于同步事务 API,Transaction#successTransaction#failure 已被移除。

  • 事务对象的 success/close 模式现已过时,完全由 commitrollback 方法取代。然而,与仅标记事务为成功并等待 Transaction#close 执行实际提交的 Transaction#success 不同,Transaction#commit 会立即提交事务。

    4.0 中的事务只能提交或回滚一次。如果事务没有使用 Transaction#commit 显式提交,Transaction#close 将回滚该事务。

  • Statement 重命名为 QueryStatementResult 重命名为 Result。同样,StatementResultCursor 重命名为 ResultCursor

  • 一个结果只能被消费一次。

  • 如果查询结果已通过调用 Result#consume 丢弃,和/或创建结果的外部范围(如事务或会话)已关闭,则该结果被视为已消费。尝试访问已消费的结果将抛出 ResultConsumedException 异常。

  • 实验性的 StatementRunner.typeSystem() 已移动至 Driver.defaultTypeSystem()

  • LoadBalancingStrategy 已从 Config 类中移除,驱动程序现在始终默认使用 LeastConnectedStrategy

有关特定驱动程序重大变更的更多信息,请参阅它们各自的章节。

© . This site is unofficial and not affiliated with Neo4j, Inc.