請問有人使用mongodb atlas時出現一段時間之後會自己斷線或連線速度變很慢的情況嗎,但db重新連線之後就正常,一開始以為是後端或docker出問題,docker先不用後一樣有這問題,後來單純只重新連線db就恢復正常,伺服器不用重啟所以根伺服器可能也沒關係,我目前是架設在aws的ubuntu環境上。
我後端是node.js錯誤資訊大概如下:
MongoTimeoutError: Server selection timed out after 10000 ms
3|www | at Timeout._onTimeout (/home/ubuntu/伺服器檔案路徑/node_modules/mongodb-core/lib/sdam/topology.js:773:16)
3|www | at listOnTimeout (node:internal/timers:573:17)
3|www | at process.processTimers (node:internal/timers:514:7) {
3|www | [Symbol(mongoErrorContextSymbol)]: {}
3|www | }
Timeouts: MongoDB Atlas 可能會因連線逾時而導致斷線。可以檢查 MongoDB 連線字串的 connectTimeoutMS 和 socketTimeoutMS設置,可嘗試調整這些設定來增加逾時時間。
IP 白名單: 可以檢查 Atlas 控制台中的 IP 白名單設定,確保伺服器的 IP 被正確列入其中。
網絡延遲不穩: MongoDB Atlas 也是在雲上的EC2服務,網絡延遲或不穩定可能會影響連線。可嘗試測試 AWS 到 MongoDB Atlas 主機間的網絡延遲性。
MongoDB 連線Pool問題: MongoDB Connection Pool長時間可能沒有釋放連線,導致新連線無法成功建立。可嘗試增加或減少 maxPoolSize 和 minPoolSize,看看是否能解決。
MongoDB Atlas 的機器Size效能問題: 可檢查 Atlas 管理介面內的效能監視指標,看是否存在過高的負載或資源限制。
DNS 配置問題: 如果使用DNS解析MongoDB Atlas FQDN。先嘗試改用 IP 直連看看是否有改善。