高级连接信息
连接协议和安全性
驱动程序和服务器之间的通信由 Bolt 协调。服务器 URI 的方案决定连接是否加密,以及如果加密,接受什么类型的证书。
URL 方案 | 加密 | 评论 |
---|---|---|
neo4j |
本地设置的默认值 |
|
neo4j+s |
(仅 CA 签名的证书) |
Aura 的默认值 |
neo4j+ssc |
(CA 和自签名证书) |
无论实例是适当的集群环境还是单机环境,驱动程序在成功连接后都会从服务器接收 路由表。驱动程序的路由行为与 Neo4j 的集群 协同工作,将读/写事务定向到适当的集群成员。如果你想要定位 特定 机器,请使用 bolt 、bolt+s 或 bolt+ssc URI 方案。 |
要使用的连接方案不是你的选择,而是由服务器要求决定的。你必须事先知道正确的服务器方案,因为在连接之前没有公开任何元数据。如果你不确定,请咨询数据库管理员。
身份验证方法
基本身份验证
基本身份验证方案依赖于传统的用户名和密码。这些可以是你的本地安装的凭据,也可以是 Aura 实例提供的凭据。
const driver = neo4j.driver(URI, neo4j.auth.basic(USER, PASSWORD))
基本身份验证方案也可以用于验证 LDAP 服务器(仅限企业版)。
Kerberos 身份验证
Kerberos 身份验证方案需要一个 Base64 编码的票证。它只能在服务器安装了 Kerberos 附加组件 时使用。
const driver = neo4j.driver(URI, neo4j.auth.kerberos(ticket))
Bearer 身份验证
Bearer 身份验证方案需要一个 Base64 编码的令牌,该令牌由身份提供者通过 Neo4j 的 单点登录功能 提供。
const driver = neo4j.driver(URI, neo4j.auth.bearer(token))
Bearer 身份验证方案需要 在服务器上配置单点登录。配置后,客户端可以通过 发现 API 发现 Neo4j 的配置。 |
自定义地址解析器
创建 Driver
对象时,可以指定一个 解析器 函数来解析驱动程序初始化时使用的连接地址。请注意,驱动程序在路由表中接收到的地址不会使用自定义解析器解析。
example.com
端口 9999
解析为 localhost
端口 7687
let URI = 'neo4j://example.com:9999'
let addresses = [
'localhost:7687'
]
let driver = neo4j.driver(URI, neo4j.auth.basic(USER, PASSWORD), {
resolver: address => addresses
})
其他连接参数
你可以在 API 文档 中找到所有 Driver
配置参数。
术语表
- LTS
-
长期支持 版本是保证支持一定年限的版本。Neo4j 4.4 是 LTS,Neo4j 5 也将有一个 LTS 版本。
- Aura
-
Aura 是 Neo4j 的完全托管的云服务。它提供免费和付费计划。
- Cypher
-
Cypher 是 Neo4j 的图查询语言,允许你从数据库中检索数据。它类似于 SQL,但适用于图。
- APOC
-
Cypher 上的强大过程 (APOC) 是一个包含(许多)函数的库,这些函数无法轻松地在 Cypher 本身中表达。
- Bolt
-
Bolt 是用于 Neo4j 实例和驱动程序之间交互的协议。默认情况下,它监听端口 7687。
- ACID
-
原子性、一致性、隔离性、持久性 (ACID) 是保证数据库事务可靠处理的属性。符合 ACID 的 DBMS 确保数据库中的数据在出现故障的情况下仍然准确且一致。
- 最终一致性
-
如果数据库提供保证,即所有集群成员都将在 某个时间点 存储数据的最新版本,则该数据库是最终一致的。
- 因果一致性
-
如果读和写查询以相同的顺序被集群中的每个成员看到,则数据库是因果一致的。这比 最终一致性 更强。
- NULL
-
空标记不是一种类型,而是一个值缺失的占位符。有关更多信息,请参阅 Cypher → 使用
null
。 - 事务
-
事务是工作单元,可以 全部提交 也可以在失败时 回滚。一个例子是银行转账:它涉及多个步骤,但它们必须 全部 成功或被恢复,以避免从一个帐户中扣除资金,但没有添加到另一个帐户。
- 背压
-
背压是一种反对数据流动的力量。它确保客户端不会被它无法处理的速度更快的数据所淹没。
- 事务函数
-
事务函数是在
executeRead
或executeWrite
调用时执行的回调函数。如果服务器发生故障,驱动程序会自动重新执行回调函数。 - 驱动程序
-
Driver
对象包含与Neo4j数据库建立连接所需的详细信息。