繁体   English   中英

如何将我与 neo4j 的连接指定为 K8s 中的领导角色

[英]How to specify my connection to neo4j as a leader role in K8s

我通过这个helm chart在 K8s 中部署了一个 3 核(默认)Neo4j。 我是 neo4j 的新手。

我在 Rails 项目的 Ruby 中使用neo4jrb

当我尝试连接 neo4j 服务写入数据时。 我经常(并非总是)遇到这个错误

Neo4j::Core::CypherSession::CypherError:   Cypher error:
  Neo.ClientError.Cluster.NotALeader: No write operations are allowed directly on this database. Writes must pass through the leader. The role of this server is: FOLLOWER

我读了这篇文章Querying Neo4j Clusters 然后我意识到舵图创建了一个领导者和两个追随者核心。 在密码外壳中,当我运行时

CALL dbms.cluster.overview() YIELD id, role RETURN id, role

我有

+-----------------------------------------------------+
| id                                     | role       |
+-----------------------------------------------------+
| "acce2b2c-53ae-498c-a49b-84f42897445e" | "FOLLOWER" |
| "03cabb09-de1a-40cc-b8b0-bb02981cf551" | "FOLLOWER" |
| "1aa96add-f5cd-43a1-9fc6-2a5360668bb7" | "LEADER"   |
+-----------------------------------------------------+

因此,当我尝试写入数据时,我应该连接到LEADER 而且我知道集群不能永久成为leader 如果当前的leader宕机,那么follower将成为新的leader

我曾经认为bolt+routing到因果集群可能是解决我的问题的简单方法。 当我回到 ruby 客户端时,我发现它现在不支持bolt+routing

我现在该怎么办? 我无法配置 LoadBalancer。 我有权为 Ingress 编写配置。

我不确定 neo4jrb 是否支持螺栓+路由。

您可以尝试使用 graalvm 的 truffleruby 中的 java 驱动程序,请参阅:

https://github.com/michael-simons/neo4j-graalvm-polyglot-examples

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM