Промяна на потоците (налично в MongoDB v3.6+) е функция, която ви позволява да осъществявате достъп до промени в данните в реално време без сложността и риска от проследяване на oplog . Основни предимства на потоците за промени over следвайки oplog са:
-
Използвайте вградения MongoDB контрол на достъпа, базиран на роли . Приложенията могат да отварят потоци за промени само срещу колекции, които са прочели достъп до. Прецизно и конкретно разрешение.
-
Осигурете добре дефиниран API, който е надежден. събития за промяна изходните данни, които се връщат от потоците за промяна, са добре документирани. Освен това всички официални драйвери на MongoDB следвайте същите спецификации при внедряване на интерфейс за потоци от промени.
-
Събитията за промяна, които се връщат като част от потоците за промяна, са ангажирани поне към по-голямата част от набора реплики. Това означава, че събитията за промяна, които се изпращат на клиента, са трайни. Приложенията не трябва да обработват връщане на данните в случай на отказ.
-
Осигурете общо подреждане на промените в шардовете, като използвате глобален логически часовник. MongoDB гарантира, че редът на промените се запазва и събитията на промените могат безопасно да се интерпретират в получения ред. Например курсор на поток от промени, отворен срещу разделен клъстер с 3 сегмента, връща събития за промяна, зачитайки общия ред на тези промени във всичките три сегмента.
-
Поради характеристиката на подреждане, потоците от промени също са присъщи за възобновяване.
_id
от промяна на изхода на събитие е токен за автобиография. Официалните драйвери на MongoDB автоматично кешират този токен за възобновяване и в случай на преходна мрежова грешка драйверът ще опита отново веднъж. Освен това приложенията могат също да се възобновят ръчно чрез използване на параметърresume_after
. Вижте също Възобновяване на поток за промяна . -
Използвайте тръбопровод за агрегиране на MongoDB . Приложенията могат да променят изхода на събитията за промяна. Понастоящем има пет налични етапа на конвейер за модифициране на изхода на събитието. Например изходните данни за събитие за промяна могат да бъдат филтрирани (от страната на сървъра), преди да бъдат изпратени чрез етап на $съвпадение . Вижте Промяна на изходния поток за промяна за повече информация.
Ако вашето внедряване на MongoDB е версия 3.6+, бих препоръчал да използвате MongoDB Change Streams вместо проследяване на oplog.
Можете също да намерите Промяна на препоръките за производство на потоци полезен ресурс.