MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Време за изчакване на връзката към MongoDb на Azure VM

След известно търсене тук моите съображения:

  • Обикновено е добра практика да внедрите някаква логика за повторен опит на всеки ресурс, до който имате достъп в Azure (база данни, VM, ...). За MongoDb има частично внедряване, така че потенциално трябва да напишете свой собствен. Вижте също този проблем и това .
  • Ако е възможно, всички ресурси на Azure трябва да са в една и съща виртуална мрежа на Azure (по този начин всички връзки се правят с помощта на Azure Private Ip вместо Public Ip. Това също е полезно от съображения за сигурност, защото не е необходимо да отваряте крайна точка на обществеността.
  • Когато внедрявате MongoDb в Azure, опитайте се да следвате официалните указания на MongoDb .
  • В този конкретен случай трябва да зададете net.ipv4.tcp_keepalive_time до стойност, по-ниска от tcp keep alive на Azure, която по подразбиране е 240 секунди. По този начин връзката се затваря и драйверът на MongoDb може да прихване това условие и да отвори нова връзка. Ако връзката е затворена от Azure, драйверът не може да я прихване. Ако искате да промените тази настройка на Azure (не се препоръчва), можете да я намерите в конфигурацията на Public Ip.

В моята среда за разработка съм задал net.ipv4.tcp_keepalive_time до 120 и сега изглежда всичко работи добре. Помислете, че ако хоствате MondoDb в контейнер на Docker, трябва да зададете тази настройка на хоста на Docker.

Ето някои други полезни връзки:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изброя всички бази данни MongoDB в Node.js?

  2. Защо тази заявка за актуализиране актуализира само един запис веднъж

  3. Коя е машината на JavaScript, която изпълнява обвивката на mongoDB?

  4. Композитен ключ на MongoDB:InvalidOperationException:{document}. Самоличността не се поддържа

  5. Създаване на мидълуерна функция за проверка дали потребителската роля е равна на „Администратор“