Luồng thay đổi (có sẵn trong MongoDB v3.6 +) là tính năng cho phép bạn truy cập các thay đổi dữ liệu theo thời gian thực mà không phức tạp và rủi ro khi gắn thẻ oplog . Các lợi ích chính của luồng thay đổi hết theo sau oplog là:
-
Sử dụng Kiểm soát truy cập dựa trên vai trò của MongoDB tích hợp sẵn . Các ứng dụng chỉ có thể mở các luồng thay đổi dựa trên các bộ sưu tập mà chúng đã đọc truy cập vào. Ủy quyền cụ thể và tinh tế.
-
Cung cấp một API được xác định rõ ràng và đáng tin cậy. sự kiện thay đổi đầu ra được trả về bởi các luồng thay đổi được ghi lại đầy đủ. Ngoài ra, tất cả trình điều khiển MongoDB chính thức tuân theo cùng một thông số kỹ thuật khi thực hiện giao diện luồng thay đổi.
-
Các sự kiện thay đổi được trả về như một phần của các luồng thay đổi ít nhất được cam kết với phần lớn tập hợp bản sao. Điều này có nghĩa là các sự kiện thay đổi được gửi đến máy khách là lâu dài. Các ứng dụng không cần xử lý việc khôi phục dữ liệu trong trường hợp chuyển đổi dự phòng.
-
Cung cấp tổng thứ tự các thay đổi trên các phân đoạn bằng cách sử dụng đồng hồ lôgic toàn cục. MongoDB đảm bảo thứ tự thay đổi được giữ nguyên và các sự kiện thay đổi có thể được diễn giải một cách an toàn theo thứ tự đã nhận. Ví dụ:con trỏ dòng thay đổi được mở trên một cụm phân đoạn 3 phân đoạn trả về các sự kiện thay đổi tương ứng với tổng thứ tự của những thay đổi đó trên cả ba phân đoạn.
-
Do đặc tính sắp xếp, các luồng thay đổi cũng có thể tiếp tục được.
_id
trong tổng số thay đổi đầu ra sự kiện là một mã thông báo tiếp tục. Trình điều khiển chính thức của MongoDB tự động lưu vào bộ nhớ cache mã thông báo tiếp tục này và trong trường hợp lỗi mạng tạm thời, trình điều khiển sẽ thử lại một lần. Ngoài ra, các ứng dụng cũng có thể tiếp tục theo cách thủ công bằng cách sử dụng tham sốresume_after
. Xem thêm Tiếp tục luồng thay đổi . -
Sử dụng đường dẫn tổng hợp MongoDB . Các ứng dụng có thể sửa đổi đầu ra các sự kiện thay đổi. Hiện tại, có năm giai đoạn đường ống có sẵn để sửa đổi đầu ra sự kiện. Ví dụ:đầu ra sự kiện thay đổi có thể được lọc ra (phía máy chủ) trước khi được gửi đi bằng cách sử dụng giai đoạn khớp nối . Xem Sửa đổi đầu ra luồng thay đổi để biết thêm thông tin.
Nếu triển khai MongoDB của bạn là phiên bản 3.6+, tôi khuyên bạn nên sử dụng Luồng thay đổi MongoDB qua việc theo dõi oplog.
Bạn cũng có thể tìm thấy Đề xuất sản xuất luồng thay đổi một nguồn hữu ích.