MongoDB 설치 프로그램은 3 개의 복제 세트 샤드를 사용합니다. 각 웹 서버는 로컬로 mongos 인스턴스를 실행하고 클라이언트 node.js 프로세스는 Mongoose (3.6.20) 및 node-mongodb-native를 사용하여 연결합니다. 따라서 node-mongodb-native는 localhost의 mongos에 연결합니다.복제본 세트 주 네트워크 오류시 node-mongodb-native가 복구되지 않습니까?
replica set primary가 다운 될 때 (우리는 'ifdown eth0'를 실행하여 이것을 시뮬레이트 할 수 있습니다.) mongos가이를 올바르게 감지하고 새 기본 노드가 선택되었음을 감지합니다. 여태까지는 그런대로 잘됐다. 그러나 mongos 인스턴스에 대한 node-mongodb-native의 연결은 아직 열리지 만 작동하지는 않으며 노드 procs를 다시 시작해야합니다.
우리는 mongos가 죽은 1 차 노드에 대한 기존 연결을 죽이고 노드 -mongodb-native가 다시 연결된다는 가정을했지만, 그렇지 않은 것 같습니다. 서버와 OS는이 연결이 열려 있다고 생각합니다. 반대로 기본 stepDown에서는 클라이언트가 정상적으로 작동하고 연결은 닫히고 다시 열립니다.
우리는 socketTimeoutMS를보고 있습니다.하지만 유휴 상태 인 연결에 대한 연결이 끊어 지므로 잘못된 것 같습니다.
클라이언트 또는 몽고에게 구성이 누락되었거나 자체 핑을 구현해야합니까?