使用 neo4jclient 连接到 Neo4j 因果集群

Connect to Neo4j Causal Cluster using neo4jclient

我将 neo4jClient 与通过 AMI 托管在 aws 上的因果集群一起使用。

我最近才转到此设置,之前我使用的是单个服务器,现在是多个服务器(在我的例子中是 3 个)。

如何正确配置连接字符串以连接到集群,以便 neo4j 客户端知道整个集群并可以正确分配读写等?

运行 这个命令给了我集群中的所有服务器。

CALL dbms.cluster.routing.getServers()

[
    {
        "addresses": [
            "100.100.100.1:7687"
        ],
        "role": "WRITE"
    },
    {
        "addresses": [
            "100.100.100.2:7687",
            "100.100.100.3:7687"
        ],
        "role": "READ"
    },
    {
        "addresses": [
            "100.100.100.1:7687",
            "100.100.100.2:7687",
            "100.100.100.3:7687"
        ],
        "role": "ROUTE"
    }
]

目前我的 neo4jclient 设置连接到标记为 'Write' 的实例,它会自动发现其他服务器吗?

services.AddSingleton(s => NeoServerConfiguration.GetConfiguration(new Uri(Configuration.GetConnectionString("Neo4jConnection")), appSettings.Neo4jUser, appSettings.Neo4jPassword));

NeoServerConfiguration 似乎只允许您连接到单个实例而不指定多个。

对于 Neo4jClient - 您需要使用 BoltGraphClient 然后您连接到的 URI 是:

bolt+routing://100.100.100.1:7687

尽管它可以是您的任何 IP。

它不适用于标准 http 端点 - 因此您需要使用 bolt.

如果您正在使用 Neo4j-Driver 并且您正在尝试版本 4.x - 那么您将使用 neo4j 而不是 bolt+routing(即 neo4j://ip)