#arangodb #arangojs
#arangodb #arangojs
Вопрос:
Я пытаюсь настроить модель Arango master-slave. Удалось выполнить первое пакетное обновление, но приложение для синхронизации в реальном времени не работает. Он продолжает отказывать в ограничении индексации, которое отлично работает в master и не имеет проблемы с дублированием ключа.
require("@arangodb/replication").setupReplication({
...> endpoint: "tcp://master:8529",
...> username: “name”,
...> password: “pass”,
...> autoStart: true,
...> incremental:true,
...> verbose:true,
...> });
состояние приложения.
{
"state" : {
"started" : "2020-12-08T07:21:50Z",
"running" : false,
"phase" : "inactive",
"lastAppliedContinuousTick" : null,
"lastProcessedContinuousTick" : null,
"lastAvailableContinuousTick" : null,
"safeResumeTick" : null,
"progress" : {
"time" : "2020-12-09T07:07:44Z",
"message" : "applier shut down",
"failedConnects" : 0
},
"totalRequests" : 4,
"totalFailedConnects" : 0,
"totalEvents" : 0,
"totalDocuments" : 0,
"totalRemovals" : 0,
"totalResyncs" : 3,
"totalOperationsExcluded" : 0,
"totalApplyTime" : 0,
"averageApplyTime" : 0,
"totalFetchTime" : 0,
"averageFetchTime" : 0,
"lastError" : {
"errorNum" : 0
},
"time" : "2020-12-09T07:13:02Z"
},
"server" : {
"version" : "3.6.4",
"serverId" : "237391144398597"
},
"endpoint" :
Я пробовал (синхронизировать, асинхронно) все. Он просто выполняет первое пакетное обновление, и текущие обновления не выполняются. Каким-то образом приложение просто завершает работу. Пожалуйста, помогите
Ответ №1:
Можете ли вы попробовать либо
require("@arangodb/replication").setupReplication({
endpoint: "tcp://master:8529",
username: “name”,
password: “pass”,
autoStart: true,
incremental:true,
verbose:true,
includeSystem: true
});
для запуска приложения в текущей базе данных или, следующее для запуска приложения для всех баз данных / всего сервера
require("@arangodb/replication").setupReplicationGlobal({
endpoint: "tcp://master:8529",
username: “name”,
password: “pass”,
autoStart: true,
incremental:true,
verbose:true
});
В последнем случае ( setupReplicationGlobal
) вы можете позже проверить состояние приложения с помощью
require("@arangodb/replication").globalApplier.state();
(обратите внимание на globalApplier
here против just applier
)
Комментарии:
1. Спасибо за быстрый ответ. Я думаю, что я также попытался включить системные коллекции, чтобы снова попробовать. На самом деле я попробовал выполнить глобальный и без глобального для репликации и приложения. Я не получаю никаких проблем в этой форме, но когда я запускаю require(«@arangodb / репликация»).syncGlobal({. или require(«@arangodb / репликация»).sync({. Я получаю проблему с ограничением для ключа, который я создал hasIndex. Это происходит только тогда, когда Master непрерывно использует данные из системы событий. Когда я взял копию главного не потребляющего события, это прошло без проблем.
2. — Недавно я обнаружил. Уникальный индекс не работает должным образом в Arango. каким-то образом у него есть «» пустая строка для нескольких документов. Это причина его сбоя при создании подчиненного устройства. Понятия не имею, как оно было размещено в первую очередь. я также обновил его до последней версии для того же. Не очень помогает.