Я развернул 3-ядерный (по умолчанию) Neo4j в K8s через эту таблицу управления . Я довольно новичок ie для neo4j.
Я использую neo4jrb в Ruby проекте Rails.
Когда я пытался подключить Сервис 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
Я читал эту статью Запрос кластеров Neo4j . Затем я понял, что один график лидера и два последователя созданы с помощью графика руля. В cypher-shell, когда я запускаю
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.