【问题标题】:Connect to Neo4j Causal Cluster using neo4jclient使用 neo4jclient 连接到 Neo4j 因果集群
【发布时间】:2019-12-02 06:37:28
【问题描述】:

我正在将 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 似乎只允许您连接到单个实例而不是指定多个。

【问题讨论】:

    标签: c# .net-core neo4j neo4jclient


    【解决方案1】:

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

    bolt+routing://100.100.100.1:7687

    虽然它可能是您的任何 IP。

    它不适用于标准的 http 端点 - 所以您需要使用 bolt

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

    【讨论】:

    • 谢谢,在文档中的任何地方都找不到这个。幸运的是,我不久前也开始使用 Bolt 客户端 :)
    • URI 始终采用 Neo4j 自身使用的相同格式 - 因此连接 URI 的文档位于:neo4j.com/docs/driver-manual/current/client-applications/… (atm :))
    • 啊,好吧,我从 Neo4jClient Wiki (github.com/Readify/Neo4jClient/wiki/connecting) 获取我的信息,但没有具体提及。无论如何,再次感谢您的帮助。
    • 哈 - 不 - 它甚至没有提到 BoltGraphClient - 我认为该页面甚至是前因果集群!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2022-11-04
    • 2020-01-15
    • 2016-10-23
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多