Kết nối nên được sử dụng lại vì những lý do sau:
- Việc mở và đóng các kết nối DB trên mọi yêu cầu API đều chậm.
- Nó khó có thể mở rộng. Giả sử bạn đang thực hiện một số yêu cầu API đồng thời cho mỗi người dùng, bạn sẽ nhanh chóng đạt đến cùng một giới hạn kết nối khi ứng dụng có nhiều người dùng hơn.
Làm cách nào để quản lý kết nối MongoDB trong ứng dụng web Node.js?
MongoClient
mặc định cấu hình có số lượng kết nối tối đa cho mỗi nhóm (poolSize
) được đặt thành 5
. Vì vậy, bạn sẽ không thấy nhiều hơn ~ 5 kết nối trong MongoDB Atlas nếu bạn chỉ có một phiên bản ứng dụng đang chạy và kiểm tra xem ứng dụng khách đã được kết nối hay chưa, giống như bạn làm.
if (!client.isConnected()) {
await client.connect();
}
Lưu ý rằng Next.js "khởi động lại" theo mọi yêu cầu trong chế độ phát triển (next dev
) và có vẻ như nó ảnh hưởng đến MongoClient
bộ nhớ cache và tạo nhiều kết nối. Tuy nhiên, ở chế độ sản xuất, bạn sẽ không gặp phải vấn đề này.