MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Hết thời gian chờ kết nối với MongoDb trên Azure VM

Sau một số tìm kiếm ở đây, tôi đã cân nhắc:

  • Một phương pháp hay là thực hiện một số loại logic thử lại trên mọi tài nguyên mà bạn truy cập trên Azure (cơ sở dữ liệu, máy ảo, ...). Đối với MongoDb, có một phần triển khai, vì vậy bạn có thể nên viết riêng của mình. Xem thêm sự cố này cái này .
  • Nếu có thể, tất cả tài nguyên trên Azure phải nằm trong cùng một Mạng ảo Azure (theo cách này, tất cả các kết nối được thực hiện bằng Azure Private Ip thay vì Public Ip. Điều này cũng hữu ích vì lý do bảo mật vì bạn không cần mở endpoint cho công chúng.
  • Khi triển khai MongoDb trên Azure, hãy cố gắng tuân theo nguyên tắc chính thức của MongoDb .
  • Trong trường hợp cụ thể này, bạn nên đặt net.ipv4.tcp_keepalive_time đến một giá trị thấp hơn tcp giữ cho Azure tồn tại, theo mặc định là 240 giây. Bằng cách này, kết nối được đóng và trình điều khiển MongoDb có thể chặn điều kiện này và mở một kết nối mới. Nếu kết nối bị đóng bởi Azure, trình điều khiển không thể chặn nó. Nếu muốn thay đổi cài đặt này trên Azure (không được khuyến nghị), bạn có thể tìm cài đặt này bên trong cấu hình Ip công khai.

Trong môi trường phát triển của mình, tôi đã đặt net.ipv4.tcp_keepalive_time lên 120 và bây giờ mọi thứ dường như hoạt động tốt. Hãy xem xét rằng nếu bạn lưu trữ MondoDb bên trong vùng chứa Docker, bạn nên đặt cài đặt này trên máy chủ Docker.

Dưới đây là một số liên kết hữu ích khác:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. truy vấn mongo - tài sản có tồn tại không?

  2. Thiết kế lược đồ MongoDB (mảng lồng nhau so với bộ sưu tập riêng biệt)

  3. Lỗi:queryTxt ETIMEOUT khi kết nối với MongoDb Atlas bằng mongoose

  4. Chạy đề xuất Mahout RowSimilarity trên dữ liệu MongoDB

  5. Cách sử dụng Truy vấn tổng hợp với MongoItemReader trong đợt mùa xuân