sql >> Databáze >  >> NoSQL >> MongoDB

SocketTimeout s otevřeným připojením v MongoDB

Po několika pokusech jsem zjistil, že to byl problém s Load Balancerem Azure.
Po 60s nečinnosti odpojí všechna čekající TCP připojení.

Po dalším pátrání jsem našel tento příspěvek diagnostiky MongoDB FAQ a nastavil jsem tcp keepalive na 120s:

sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>

a také jsem nastavil socketKeepAlive MongoClient na true:

MongoClientOptions.Builder options = MongoClientOptions.builder();
options.socketKeepAlive(true);
mongoClient = new MongoClient(mongoAddress, options.build());

Po těchto opravách se zdá, že problém zmizel!



  1. Najděte dokumenty v MongoDB, jejichž pole pole je podmnožinou pole dotazů

  2. Automatické zvýšení sekvence v mongodb pomocí Java

  3. Jak nasadit MongoDB pro vysokou dostupnost

  4. Jak převést pohled MongoDB na sbírku