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

Časový limit připojení k MongoDb na virtuálním počítači Azure

Po nějakém hledání zde mé úvahy:

  • Obvykle je dobrým zvykem implementovat nějaký druh logiky opakování na každý prostředek, ke kterému přistupujete v Azure (databáze, virtuální počítač, ...). Pro MongoDb existuje částečná implementace, takže byste si měli potenciálně napsat vlastní. Viz také tento problém a toto .
  • Pokud je to možné, všechny prostředky v Azure by měly být ve stejné virtuální síti Azure (takto jsou všechna připojení vytvořena pomocí Azure Private Ip namísto Public IP. To je také užitečné z bezpečnostních důvodů, protože nemusíte otevírat koncový bod veřejnosti.
  • Při nasazování MongoDb na Azure se snažte řídit oficiálními pokyny MongoDb .
  • V tomto konkrétním případě byste měli nastavit net.ipv4.tcp_keepalive_time na hodnotu nižší, než je tcp keep alive Azure, což je ve výchozím nastavení 240 sekund. Tímto způsobem je připojení uzavřeno a ovladač MongoDb může tento stav zachytit a otevřít nové připojení. Pokud je připojení uzavřeno službou Azure, ovladač jej nemůže zachytit. Pokud chcete toto nastavení změnit v Azure (nedoporučuje se), najdete to v konfiguraci Public IP.

Ve svém vývojovém prostředí jsem nastavil net.ipv4.tcp_keepalive_time na 120 a nyní se zdá, že vše funguje dobře. Zvažte, že pokud hostujete MondoDb v kontejneru Docker, měli byste toto nastavení nastavit na hostiteli Docker.

Zde jsou některé další užitečné odkazy:



  1. Android:Moje aplikace se nespustí, protože potřebuji zpracovat výjimku neznámého hostitele. když to udělám, spadne

  2. Upsert Dictionary v MongoDb

  3. Jak odstranit _id v MongoDB a nahradit jiným polem jako primární klíč?

  4. SSL připojení k Redis s StackExchange.Redis