Приложение Arango DB Replication не работает

Я пытаюсь настроить модель Аранго ведущий-ведомый. Можно выполнить первое пакетное обновление, но приложение для синхронизации в реальном времени не работает. Он продолжает терпеть неудачу при ограничении индексации, которое отлично работает в мастере и не имеет проблемы с дублированием ключа.

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" :


Я пробовал (синхронизировать, асинхронно) все. Он просто выполняет первое пакетное обновление, а текущих обновлений не происходит. Как-то апплир просто отключается. Пожалуйста помоги


person user2449952    schedule 09.12.2020    source источник


Ответы (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 здесь по сравнению с просто applier)

person stj    schedule 09.12.2020
comment
Спасибо за быстрый ответ. Я думаю, что я попытался включить системные коллекции, я снова попробую. Фактически я пробовал полностью глобальный и без глобального для репликации и приложения. У меня нет проблем с этой формой, но когда я запускаю require (@ arangodb / replication) .syncGlobal ({. Or require (@ arangodb / replication) .sync ({. У меня проблема с ограничением для созданного мной ключа hasIndex. Это происходит только тогда, когда мастер непрерывно потребляет данные из системы событий.Когда я взял копию мастера, не потребляющего событие, это прошло без проблем. - person user2449952; 10.12.2020
comment
- Недавно у меня была находка. Уникальный индекс не работает должным образом в Аранго. у него как-то есть пустая строка для нескольких документов. Это причина его сбоя при создании ведомого. Понятия не имею, как это вообще оказалось. Я также обновил его до последней версии. Не особо помогло. - person user2449952; 19.01.2021