내 응용 프로그램에는 코드가 주기적으로 연결될 DB가 있지만 매우 드물게 사용됩니다 (하루에 한 번).거의 사용되지 않는 몽구스 연결
모듈 (app) init 중에 연결 한 다음 응용 프로그램 실행주기 동안 모듈 전체에서 사용할 수 있습니까?
options.server.socketOptions = options.replset.socketOptions = { keepAlive: 1 };
mongoose.connect(uri, options);
또는 표준 자동 재 연결 기능을 충분히 할 것이다 : 나는 확실하지 않다
var conn = mongoose.createConnection(process.env.SOME_DB)
나는 제안 몽구스의 문서에서 살아 옵션을 계속해야합니까?
"장기 실행 응용 프로그램"은 무엇입니까? 실제로 모든 실시간 서비스는 장시간 실행되는 응용 프로그램이므로 프로덕션 환경에서 이러한 모든 서비스를 활성화해야합니다.
또한 연결 풀이 무엇이며 어떻게 영향을 미칠지 잘 모릅니다.
keepAlive는 새로운 연결이 만들어 질 때까지 연결이 시간 초과해야하는 ms 수를 나타내는 부울 값이 아니라 숫자입니다. 이런 이유 때문에, 1로 설정하는 것은 매우 바람직하지 않습니다. 왜냐하면 몽구스가 실제로 연결하면 안되기 때문입니다. –
프로덕션 환경에서이 기능을 사용할 수 있었고 응용 프로그램이 수천 개의 연결을 만들고 있었고 끊임없이 내 DB를 다운 시켜서 내 복제본 (및 백 등)으로 전환했습니다. keepAlive를 더 큰 값으로 설정하는 것이 좋습니다. 나는 2000 년으로 설정했습니다. –