Hướng dẫn mongodb timeout settings - cài đặt thời gian chờ mongodb
Tôi đang gặp khó khăn khi hiểu các cài đặt thời gian chờ tốt nhất để định cấu hình cho ứng dụng của mình Có ba loại cài đặt thời gian chờ: Show
ConnectItTimeoutms sockettimeoutms MaxImems Và cùng với họ, chúng tôi cũng có: PoolSize PoolSize Autoreconnect ConnectTimeout tương ứng với cài đặt thời gian chờ khi ứng dụng không kết nối với MongoDB trong khung thời gian được cụ thể. Tôi cho rằng điều này sẽ dẫn đến một ngoại lệ. Sockettimeoutms tương ứng với ổ cắm chờ để nhận phản hồi từ máy chủ DB trước khi đóng. MaxTimem tương ứng với thời gian chờ của một thao tác chạy trong DB. Điều này dẫn đến một ngoại lệ. Sự khác biệt giữa Sockettimeout và MaxTimeout là gì ?. Tôi có yêu cầu tôi phải đăng nhập mã lỗi khi yêu cầu đến cơ sở dữ liệu đã hết thời gian sau {5} giây. Không nhận được phản hồi từ cơ sở dữ liệu này. Cài đặt thời gian chờ tốt nhất cho mục đích này là gì? Làm thế nào là poolsize, giữ, tự động được kết nối với các cài đặt thời gian chờ? Ví dụ sẽ hữu ích.
Kết nốiBạn có thể kết nối với MongoDB với phương pháp 8.
Đây là mức tối thiểu cần thiết để kết nối cơ sở dữ liệu 9 chạy cục bộ trên cổng mặc định (27017). Nếu kết nối không thành công trên máy của bạn, hãy thử sử dụng 0 thay vì 1.Bạn cũng có thể chỉ định một số tham số khác trong 2:
Xem thông số chuỗi kết nối MongoDB để biết thêm chi tiết.
Mỗi mongoose.connect('mongodb://username:password@host:port/database?options...'); 44, cho dù được tạo bằng mongoose.connect('mongodb://username:password@host:port/database?options...'); 45 hoặc mongoose.connect('mongodb://username:password@host:port/database?options...'); 46 đều được hỗ trợ bởi nhóm kết nối có thể cấu hình bên trong định cư tối đa là 100. Điều chỉnh kích thước nhóm bằng các tùy chọn kết nối của bạn: 7Tiếp theoBây giờ chúng tôi đã đề cập đến các kết nối, chúng ta hãy xem các mô hình.
Kết nối
Bạn có thể kết nối với MongoDB với phương pháp 8.
Xử lý lỗiTùy chọn
Một lưu ý về Keepalive
Lựa chọn máy chủ
Bản sao đặt kết nối Tùy chọnTùy chọn chuỗi kết nối
Sự kiện kết nối
Dưới đây là một số tùy chọn quan trọng để điều chỉnh Mongoose.
Tùy chọn 2 cũng xử lý thời gian 8 sẽ thử lại kết nối ban đầu trước khi lỗi. 8 sẽ thử lại trong 30 giây theo mặc định (mặc định 2) trước khi lỗi. Để nhận được phản hồi nhanh hơn về các hoạt động thất bại, bạn có thể giảm 2 xuống 5000 như được hiển thị bên dưới.Example:
Xem trang này để biết thêm thông tin về 5 và 2Gọi lạiHàm 7 cũng chấp nhận tham số gọi lại và trả về lời hứa. 0Tùy chọn chuỗi kết nốiBạn cũng có thể chỉ định các tùy chọn trình điều khiển trong chuỗi kết nối của mình làm tham số trong phần chuỗi truy vấn của URI. Điều này chỉ áp dụng cho các tùy chọn được chuyển cho trình điều khiển MongoDB. Bạn không thể đặt các tùy chọn dành riêng cho Mongoose như 3 trong chuỗi truy vấn.can't set Mongoose-specific options like 3 in the query string. 1Nhược điểm của việc đặt các tùy chọn vào chuỗi truy vấn là các tùy chọn chuỗi truy vấn khó đọc hơn. Ưu điểm là bạn chỉ cần một tùy chọn cấu hình duy nhất, URI, thay vì các tùy chọn riêng biệt cho 2, 5, v.v ... Thực tiễn tốt nhất là đặt các tùy chọn có khả năng khác nhau giữa phát triển và sản xuất, như 1 hoặc 2, trong chuỗi kết nối, trong chuỗi kết nối, và các tùy chọn vẫn không đổi, như 5 hoặc 7, trong đối tượng Tùy chọn.Các tài liệu MongoDB có một danh sách đầy đủ các tùy chọn chuỗi kết nối được hỗ trợ. Dưới đây là một số tùy chọn thường hữu ích để đặt trong chuỗi kết nối vì chúng được liên kết chặt chẽ với tên máy chủ và thông tin xác thực.
Sự kiện kết nốiCác kết nối kế thừa từ lớp 02 của Node.js và phát ra các sự kiện khi có điều gì đó xảy ra với kết nối, như mất kết nối với máy chủ MongoDB. Dưới đây là danh sách các sự kiện mà một kết nối có thể phát ra.
Khi bạn kết nối với một máy chủ MongoDB duy nhất ("độc lập"), Mongoose sẽ phát ra 'ngắt kết nối' nếu nó bị ngắt kết nối với máy chủ độc lập và 'kết nối' nếu nó kết nối thành công với độc lập. Trong một bộ bản sao, Mongoose sẽ phát ra 'ngắt kết nối' nếu nó mất kết nối với bản sao chính và 'kết nối' nếu nó quản lý kết nối lại với bản sao chính. Một lưu ý về KeepaliveĐối với các ứng dụng chạy dài, thường nên cho phép 19 với một số mili giây. Không có nó, sau một khoảng thời gian, bạn có thể bắt đầu thấy các lỗi 20 cho những gì có vẻ như không có lý do. Nếu vậy, sau khi đọc điều này, bạn có thể quyết định bật 19: 2 22 là số mili giây phải chờ trước khi bắt đầu 19 trên ổ cắm. 19 là đúng theo mặc định vì Mongoose 5.2.0.Bản sao đặt kết nốiĐể kết nối với một bản sao, bạn đã vượt qua danh sách các máy chủ được phân định dấu phẩy để kết nối thay vì một máy chủ duy nhất. 3Ví dụ: 4Để kết nối với một bộ bản sao nút duy nhất, chỉ định tùy chọn 1. 5Lựa chọn máy chủTrình điều khiển MongoDB cơ bản sử dụng một quy trình được gọi là lựa chọn máy chủ để kết nối với MongoDB và gửi các hoạt động đến MongoDB. Nếu trình điều khiển MongoDB không thể tìm thấy máy chủ để gửi hoạt động đến sau 2, bạn sẽ nhận được lỗi dưới đây: 6Bạn có thể định cấu hình thời gian chờ bằng tùy chọn 2 để 8: 7A 29 có thuộc tính 30 giải thích lý do tại sao lựa chọn máy chủ được định thời. Ví dụ: nếu bạn đang kết nối với máy chủ độc lập với mật khẩu không chính xác, 30 sẽ chứa lỗi "xác thực không thành công". 8Bản sao đặt tên máy chủBản sao MongoDB dựa vào việc có thể tìm ra tên miền cho mỗi thành viên. Trên Linux và OSX, máy chủ MongoDB sử dụng đầu ra của lệnh 32 để tìm ra tên miền để báo cáo cho bộ bản sao. Điều này có thể gây ra các lỗi khó hiểu nếu bạn kết nối với bộ bản sao MongoDB từ xa đang chạy trên máy báo cáo 32 của nó là 1: 9Nếu bạn đang gặp lỗi tương tự, hãy kết nối với bộ bản sao bằng cách sử dụng shell 35 và chạy lệnh 36 để kiểm tra tên máy chủ của từng thành viên bộ bản sao. Thực hiện theo hướng dẫn của trang này để thay đổi tên máy chủ của thành viên đã đặt bản sao.Bạn cũng có thể kiểm tra thuộc tính 37 của 38 để xem trình điều khiển nút MongoDB nghĩ rằng trạng thái của bộ bản sao của bạn là gì. Thuộc tính 37 chứa bản đồ mô tả máy chủ. 0Hỗ trợ nhiều ngườiBạn cũng có thể kết nối với nhiều trường hợp Mongo để có tính sẵn sàng cao trong cụm Sharded. Bạn không cần phải vượt qua bất kỳ tùy chọn đặc biệt nào để kết nối với nhiều Mongo trong Mongoose 5.x. 1Nhiều kết nốiCho đến nay, chúng tôi đã thấy cách kết nối với MongoDB bằng kết nối mặc định của Mongoose. Mongoose tạo kết nối mặc định khi bạn gọi 8. Bạn có thể truy cập kết nối mặc định bằng 41.Bạn có thể cần nhiều kết nối với MongoDB vì nhiều lý do. Một lý do là nếu bạn có nhiều cơ sở dữ liệu hoặc nhiều cụm mongoDB. Một lý do khác là để làm việc xung quanh các chuyến tàu chậm. Hàm 42 có các đối số giống như 8 và trả về một kết nối mới. 2Đối tượng kết nối này sau đó được sử dụng để tạo và truy xuất các mô hình. Các mô hình luôn được đưa vào một kết nối duy nhất.always scoped to a single connection. 3Nếu bạn sử dụng nhiều kết nối, bạn nên đảm bảo rằng bạn xuất các lược đồ, không phải các mô hình. Xuất một mô hình từ một tệp được gọi là mẫu mô hình xuất. Mẫu mô hình xuất bị hạn chế vì bạn chỉ có thể sử dụng một kết nối.not models. Exporting a model from a file is called the export model pattern. The export model pattern is limited because you can only use one connection. 4Nếu bạn sử dụng mẫu lược đồ xuất, bạn vẫn cần tạo các mô hình ở đâu đó. Có hai mẫu phổ biến. Đầu tiên là xuất kết nối và đăng ký các mô hình trên kết nối trong tệp: 5Một cách khác là đăng ký các kết nối với một kim phun phụ thuộc hoặc một mô hình đảo ngược khác của điều khiển (IOC). 6Nhóm kết nốiMỗi 44, cho dù được tạo bằng 45 hoặc 46 đều được hỗ trợ bởi nhóm kết nối có thể cấu hình bên trong định cư tối đa là 100. Điều chỉnh kích thước nhóm bằng các tùy chọn kết nối của bạn: 7Tiếp theoBây giờ chúng tôi đã đề cập đến các kết nối, chúng ta hãy xem các mô hình. |