使用 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
)
我将 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
)