Hướng dẫn connection pool mongodb c# - nhóm kết nối mongodb C#

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Trên trang này

  • Nhóm kết nối là gì?
  • Tạo và sử dụng nhóm kết nối
  • Kết nối cụm mảnh ghép gộp
  • Cài đặt cấu hình nhóm kết nối

Tài liệu này mô tả cách sử dụng nhóm kết nối để quản lý kết nối giữa các ứng dụng và các phiên bản MongoDB.

Nhóm kết nối là bộ đệm của các kết nối cơ sở dữ liệu mở, sẵn sàng sử dụng được duy trì bởi trình điều khiển. Ứng dụng của bạn có thể kết nối một cách liền mạch từ nhóm, thực hiện các hoạt động và quay lại kết nối trở lại nhóm. Nhóm kết nối an toàn.connection pool is a cache of open, ready-to-use database connections maintained by the driver. Your application can seamlessly get connections from the pool, perform operations, and return connections back to the pool. Connection pools are thread-safe.

Nhóm kết nối giúp giảm độ trễ ứng dụng và số lần kết nối mới được tạo.

Một nhóm kết nối tạo ra các kết nối khi khởi động. Các ứng dụng không cần phải quay số kết nối theo cách thủ công vào nhóm. Thay vào đó, các kết nối tự động quay trở lại nhóm.

Một số kết nối đang hoạt động và một số không hoạt động nhưng có sẵn. Nếu ứng dụng của bạn yêu cầu kết nối và có một kết nối có sẵn trong nhóm, một kết nối mới không cần phải được tạo.

Hầu hết các trình điều khiển cung cấp một đối tượng loại MongoClient.drivers provide an object of type MongoClient.

Sử dụng một ví dụ MongoClient cho mỗi ứng dụng trừ khi ứng dụng kết nối với nhiều cụm riêng biệt. Mỗi trường hợp MongoClient quản lý nhóm kết nối của riêng mình với cụm mongoDB hoặc nút được chỉ định khi MongoClient được tạo. Các đối tượng MongoClient là an toàn cho chủ đề trong hầu hết các trình điều khiển.

Ghi chú

Lưu trữ thể hiện MongoClient của bạn ở một nơi có thể truy cập toàn cầu bởi ứng dụng của bạn.

Để sử dụng nhóm kết nối với LDAP, hãy xem hành vi nhóm kết nối LDAP.

mongos Bộ định tuyến có các nhóm kết nối cho mỗi nút trong cụm. Sự sẵn có của các kết nối với các nút riêng lẻ trong một cụm bị che khuất ảnh hưởng đến độ trễ. Hoạt động phải chờ một kết nối được thiết lập.

Để định cấu hình nhóm kết nối, hãy đặt các tùy chọn:

  • thông qua URI MongoDB,

  • theo chương trình khi xây dựng trường hợp MongoClient hoặc

  • Trong các tệp cấu hình của khung ứng dụng của bạn.

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Vấn đề

Dung dịch

Thời gian hoạt động phía ứng dụng chậm không được phản ánh trong nhật ký máy chủ cơ sở dữ liệu hoặc bảng thời gian thực.

Sử dụng connectTimeoutMS để đảm bảo người lái không đợi vô thời hạn trong giai đoạn kết nối.

Đặt connectTimeoutMS thành một giá trị lớn hơn độ trễ mạng dài nhất mà bạn có cho một thành viên của tập hợp.

Ví dụ: nếu một thành viên có độ trễ 10000 mili giây, hãy đặt connectTimeoutMS thành MongoClient1 (mili giây) ngăn người lái xe kết nối với thành viên đó.

Tường lửa cấu hình sai đóng kết nối ổ cắm không chính xác và trình điều khiển không thể phát hiện kết nối đó đóng không đúng.

Sử dụng MongoClient2 để đảm bảo rằng các ổ cắm luôn được đóng lại.

Đặt MongoClient2 thành hai hoặc ba lần chiều dài của hoạt động chậm nhất mà trình điều khiển chạy.

Nhật ký máy chủ hoặc bảng thời gian thực cho thấy ứng dụng dành quá nhiều thời gian để tạo các kết nối mới.

Không đủ kết nối có sẵn khi khởi động. Phân bổ các kết nối trong nhóm bằng cách đặt MongoClient4

Đặt minpoolsize thành số lượng kết nối bạn muốn có sẵn khi khởi động.

Ví dụ MongoClient đảm bảo rằng số lượng kết nối tồn tại mọi lúc.

Tải trên cơ sở dữ liệu thấp và có một số lượng nhỏ các kết nối hoạt động bất cứ lúc nào. Ứng dụng thực hiện ít hoạt động hơn bất cứ lúc nào so với dự kiến.

Tăng MaxPoolSize hoặc tăng số lượng luồng hoạt động trong ứng dụng của bạn hoặc khung bạn đang sử dụng.

Việc sử dụng CPU cơ sở dữ liệu cao hơn dự kiến. Nhật ký máy chủ hoặc bảng thời gian thực hiển thị nhiều lần thử kết nối hơn dự kiến.

Giảm MaxPoolSize hoặc giảm số lượng luồng trong ứng dụng của bạn. Điều này có thể giảm tải và thời gian đáp ứng.

Cảnh báo

Không sử dụng MongoClient2 để ngăn chặn các hoạt động máy chủ dài. Thay vào đó, hãy sử dụng MongoClient7 với các truy vấn để máy chủ có thể hủy các hoạt động chạy dài.

Tính cách sử dụng để tìm số lượng hoạt động chạy cho mỗi kết nối.

Xem xét bốn máy chủ ứng dụng kết nối với một bộ bản sao với ba thành viên. Trong kịch bản này, mỗi trong bốn máy chủ ứng dụng tạo ra một nhóm kết nối cho mỗi thành viên tập hợp bản sao.

Tính số lượng kết nối tối đa được mở bởi mỗi máy chủ ứng dụng bằng cách nhân MongoClient8 với số lượng thành viên.

Tính toán các kết nối đi từ ứng dụng đến bộ bản sao ba thành viên:

100 (MongoClient8 Mặc định MongoClient0) x 3 (thành viên đặt bản sao) = 300 (kết nối đi từ ứng dụng). (MongoClient8 default MongoClient0) x 3 (replica set members) = 300 (outgoing connections from the application).

Tính toán các kết nối đến từ bốn máy chủ ứng dụng sang bộ bản sao:

100 (MongoClient8 Mặc định MongoClient0) x 4 (Máy chủ ứng dụng) = 400 (kết nối đến với mỗi Mongod). (MongoClient8 default MongoClient0) x 4 (application servers) = 400 (incoming connections to each mongod).