SRV trong MongoDB là gì?
Cho đến nay mọi thứ đều ổn, nhưng trình điều khiển mongodb buộc rằng khi sử dụng giao thức “mongodb+srv”, nó chỉ cho phép sử dụng tên máy chủ đã phân giải, nếu “miền mẹ” của dịch vụ giống với tên miền của dịch vụ Show Trong trường hợp của chúng tôi, nơi các miền mẹ khác nhau
MongoDB cũng đã nêu điều này trong tài liệu (kiểm tra dưới ghi chú “Quan trọng” ở đó) Có ai có Ý tưởng hoặc gợi ý nào không, nếu và bằng cách nào chúng tôi có thể thực hiện công việc này? Phân giải các URL import resolveMongodbSrv from 'resolve-mongodb-srv'; await resolveMongodbSrv('mongodb+srv://user:[email protected]/db'); // Returns: mongodb://user:password@host1,host2,host3/db Hàm Phân giải các URL import resolveMongodbSrv from 'resolve-mongodb-srv'; await resolveMongodbSrv('mongodb+srv://user:[email protected]/db'); // Returns: mongodb://user:password@host1,host2,host3/db Hàm Hiện tại, chức năng Khám phá danh sách hạt DNS ban đầu cung cấp một danh sách hạt tĩnh khi MongoClient được xây dựng. Thăm dò định kỳ các bản ghi DNS SRV sẽ cho phép cập nhật danh sách proxy mongos mà không phải thay đổi cấu hình máy khách Đặc tả này được xây dựng dựa trên đặc tả Khám phá danh sách hạt DNS ban đầu ban đầu và sửa đổi định nghĩa của đặc tả Giám sát và Khám phá máy chủ về việc giám sát một tập hợp các máy chủ mongos trong Loại cấu trúc liên kết phân đoạn Các từ khóa “PHẢI”, “KHÔNG PHẢI”, “BẮT BUỘC”, “SẼ”, “SẼ KHÔNG”, “NÊN”, “KHÔNG NÊN”, “KHUYẾN NGHỊ”, “CÓ THỂ” và “TÙY CHỌN” trong tài liệu này là để Quét lại là quét định kỳ tất cả các bản ghi DNS SRV để khám phá một bộ máy chủ mongos mới Một giá trị nội bộ thể hiện tần suất các bản ghi DNS SRV sẽ được truy vấn cho Nếu cấu trúc liên kết ban đầu được tạo thông qua một URI Trình điều khiển KHÔNG ĐƯỢC triển khai thông số kỹ thuật này nếu chúng không tuân thủ đầy đủ thông số kỹ thuật Khám phá danh sách hạt DNS ban đầu Tính năng này chỉ khả dụng khi Server Discovery đã xác định rằng TopologyType là Sharded hoặc Unknown. Trình điều khiển KHÔNG ĐƯỢC quét lại bản ghi DNS SRV khi cấu trúc liên kết không được phân mảnh (i. e. Đơn, ReplicaSetNoPrimary hoặc ReplicaSetWithPrimary) Việc phát hiện ra một tập hợp các máy chủ mongos được giải thích trong phần khám phá của thông số kỹ thuật ban đầu. Hành vi quét lại định kỳ tương tự, nhưng không giống với hành vi khám phá danh sách hạt giống ban đầu. Quét định kỳ PHẢI tuân theo các quy tắc này
Quá trình quét lại cần diễn ra định kỳ. Vì các bản ghi SRV chứa một giá trị TTL, giá trị này có thể được sử dụng để cho biết khi nào cần quét lại. Các bản ghi SRV khác nhau có thể có các giá trị TTL khác nhau. Giá trị quét lạiSRVIntervalMS PHẢI được đặt ở mức thấp nhất trong số các giá trị TTL riêng lẻ được liên kết với các bản ghi SRV khác nhau trong lần quét lại gần đây nhất, nhưng KHÔNG ĐƯỢC thấp hơn 60 giây. Nếu trình điều khiển không thể truy cập các giá trị TTL của bản ghi SRV, nó PHẢI quét lại sau mỗi 60 giây Trình điều khiển NÊN nỗ lực quét lại và lấy danh sách máy chủ mongos mới sau mỗi lần quét lại giá trịSRVIntervalMS. Khoảng thời gian quét lạiSRVIntervalMS NÊN được tính từ khi kết thúc lần quét lại trước đó (hoặc khi kết thúc quá trình quét phát hiện danh sách hạt giống DNS ban đầu) Trình điều khiển theo luồng PHẢI sử dụng một luồng giám sát riêng để quét các bản ghi DNS để việc tra cứu DNS không chặn các hoạt động khác Quá trình quét lại PHẢI xảy ra trước khi quét tất cả các máy chủ như một phần của chức năng thông thường, nhưng chỉ khi quét lạiSRVIntervalMS đã qua Xem README. rst trong thư mục kiểm tra đi kèm Thông số kỹ thuật Khám phá danh sách hạt giống DNS ban đầu ban đầu chỉ điều chỉnh danh sách ban đầu của các máy chủ mongos được sử dụng thay vì một tên máy chủ duy nhất từ một URI kết nối. Mặc dù điều này làm cho cấu hình ban đầu của một nhóm máy chủ mongos dễ dàng hơn nhiều, nhưng nó không cung cấp phương pháp cập nhật danh sách máy chủ mongos trong cấu trúc liên kết Kể từ khi giới thiệu lược đồ
Chúng tôi đã chọn sử dụng TTL thấp nhất trong số tất cả các bản ghi DNS SRV, với lưu ý rằng tần suất quét lại không thấp hơn 60 giây Chúng tôi đã không chọn có chế độ "bỏ phiếu nhanh", nhưng chúng tôi đã bao gồm một điều khoản rằng cần phải quét lại khi không có bản ghi DNS. Trong trường hợp đó, quá trình quét lại sẽ diễn ra theo nhịp timFrequencyMS. Lý do là việc bỏ phiếu DNS thực sự thường rất nhanh không có nhiều ý nghĩa do bộ nhớ đệm DNS, dù sao thì bộ đệm này thường sử dụng TTL rồi, nhưng khi chúng tôi không có bản ghi TTL để tham chiếu, chúng tôi vẫn cần tần suất dự phòng Thiết kế không cho phép tùy chọn tắt quét lại định kỳ các bản ghi SRV trên cơ sở chúng tôi cố gắng có càng ít tùy chọn càng tốt. triết lý "không có núm" Thông số kỹ thuật này thay đổi hành vi giám sát máy chủ bằng cách giới thiệu tra cứu DNS lặp lại các bản ghi SRV. Mặc dù đây là một cải tiến trong chương trình Việc triển khai tham chiếu được thực hiện cho các trình điều khiển sau
Thông số kỹ thuật này không có ý nghĩa bảo mật ngoài những gì được liên kết với thông số kỹ thuật Khám phá danh sách hạt DNS ban đầu ban đầu Chuỗi kết nối SRV là gì?Sử dụng công cụ sửa đổi chuỗi kết nối +srv tự động đặt tùy chọn tls (hoặc ssl tương đương) thành true cho kết nối . Bạn có thể ghi đè hành vi này bằng cách đặt rõ ràng tùy chọn tls (hoặc tương đương ssl ) thành false với tls=false (hoặc ssl=false ) trong chuỗi truy vấn.
Chuỗi kết nối MongoDB là gì?Chuỗi kết nối MongoDB được định nghĩa là định dạng kết nối để tham gia máy chủ cơ sở dữ liệu MongoDB , chúng tôi sử dụng tên người dùng, tên máy chủ, mật khẩu và tham số cổng . Không có chuỗi kết nối thì không kết nối được với máy chủ cơ sở dữ liệu, chúng ta cần có chuỗi kết nối để kết nối máy chủ cơ sở dữ liệu.
Bản sao được đặt trong MongoDB là gì?Bộ bản sao là một nhóm các phiên bản mongod duy trì cùng một bộ dữ liệu . Một bộ bản sao chứa một số nút mang dữ liệu và tùy chọn một nút trọng tài. Trong số các nút mang dữ liệu, một và chỉ một thành viên được coi là nút chính, trong khi các nút khác được coi là nút phụ.
Cụm trong MongoDB là gì?Cụm phân mảnh trong MongoDB là tập hợp các bộ dữ liệu được phân phối trên nhiều phân đoạn (máy chủ) để đạt được khả năng mở rộng theo chiều ngang và hiệu suất tốt hơn trong các thao tác đọc và ghi. |