Kuvernnetes에서 ArangoDB 3.2.2를 사용합니다. 하나의 master db와 하나의 slave db가 있습니다. 나는 다음과 같은 명령을 입력 arangosh 내부 슬레이브 DB에 : 몇 초 동안Arangodb는 얼마 후 비동기 복제를 중단합니다.
db._useDatabase("mydb");
equire("@arangodb/replication").setupReplication({
endpoint: "tcp://master:8529",
username: "root",
password: "123456",
database: "mydb",
verbose: true,
includeSystem: false,
incremental: true,
autoResync: true,
maxConnectRetries: 20,
adaptivePolling: false,
idleMinWaitTime: 0.001,
idleMaxWaitTime: 1.5,
chunkSize: 5000
});
명령 블록을 한 후 복제가 시작되고 나는 마스터 DB의 컬렉션이 복제되는 것을 볼 수 있습니다 노예. 그러나 얼마 후 복제가 중지됩니다. 내가 실행하면
: 는 ("@의 arangodb/복제")를 필요로 이것은 내가 볼 것입니다 을 applier.state :. 내가 다시 복제 명령을 실행하면
{
"state" : {
"running" : true,
"lastAppliedContinuousTick" : "6384020",
"lastProcessedContinuousTick" : "6384026",
"lastAvailableContinuousTick" : "6389353",
"safeResumeTick" : "6382367",
"progress" : {
"time" : "2017-11-15T12:14:09Z",
"message" : "fetching master log from tick 6382367, first regular tick 6367894, barrier: 0, open transactions: 0",
"failedConnects" : 0
},
"totalRequests" : 1155,
"totalFailedConnects" : 0,
"totalEvents" : 83,
"totalOperationsExcluded" : 0,
"lastError" : {
"errorNum" : 0
},
"time" : "2017-11-15T12:15:47Z"
},
"server" : {
"version" : "3.2.2",
"serverId" : "77969163868004"
},
"endpoint" : "tcp://master:8529",
"database" : "mydb"
}
가 나는 것을 볼 수 컬렉션이 다시 복제되고 있습니다 ...
어떻게 안정적인 복제 프로세스를 초기화 할 수 있습니까? 이것이 비동기 복제임을 이해하지만 사용 사례에서 가능한 빨리 슬레이브를 업데이트해야합니다 ... 내 복제 구성이 내 필요에 맞습니까?
정확하게 알고있는 경우 복제 적용자는 해당 상태를 "실행 중"으로보고하고 다른 분석 결과는 실제로 마스터에서 변경 사항을 적용하지 않는 것으로 나타납니다. 어떻게하면 applier가 작동하지 않는다는 결론을 내릴 수 있는지 이해하고 싶습니다. 컬렉션의 문서 수를보고 있습니까? 아니면 applier의'state()'명령의 여러 진행 결과를보고 있습니까? 여기서 적어도 틱 값과'totalRequests' 값은 시간이 지남에 따라 증가해야합니다. 그렇지 않은 경우, 지원자는 실제로 교수형에 처해있는 것처럼 보입니다. – stj
그런데, 설정된 'chunkSize'값은 다소 낮습니다. 마스터가 반환하는 배치가 그다지 크지 않다는 것을 의미하는 5KB입니다. 많은 문서가 삽입/수정/제거되거나 문서 크기가 일반적으로 약 100 바이트보다 큰 경우 5KB는 그리 많지 않습니다. 'chunkSize' 값을 약 1MB로 늘리고 도움이되는지, 기본값을 사용하는지 확인하는 것이 좋습니다. 'adaptivePolling'을 켜기를 제안합니다. 그 이유는 할 일이 많지 않을 때 슬레이브에서 마스터로 보내는 HTTP 요청이 적어지기 때문입니다. – stj
복제 할 수없는 일부 데이터에 대해 ArangoDB 로그 파일에 오류가 기록 되었습니까? – stj