Получить последовательность операций коллекции MongoDB - PullRequest
0 голосов
/ 10 января 2020

Мне нужно получить последовательность операций сбора во время выполнения демоном, чтобы записать его в систему, аналогичную брокеру сообщений. Необходимая способность читать историю с указанной позиции

Возможно, я смогу решить эту проблему, прочитав opLog.

  1. Это правильное решение для использования opLog?
  2. Оплог содержит записи для всех БД, не разрезанные по коллекциям?

Использовать MongoDB v4.2

1 Ответ

1 голос
/ 11 января 2020

Правильно ли использовать opLog?

Формат оплога является внутренним и предназначен для поддержки репликации. В качестве внутреннего формата он может меняться между основными выпусками сервера и не является простым для использования.

Вместо этого следует использовать Change Streams API , который основан на оплоге и позволяет подписываться на данные изменения на уровне коллекции, базы данных или развертывания. В отличие от прямого доступа к оплогам, потоки изменений имеют документированный API, могут быть ограничены контролем доступа, могут выполнять некоторую фильтрацию и модификацию вывода потока и могут масштабироваться для поддержки наборов реплик, а также сегментированных кластеров. Потоки изменений также могут быть возобновлены в случае прерывания.

Необходимая возможность чтения истории с указанной позиции

Изменение потоков в MongoDB 4.0+ позволяет указать startAtOperationTime, чтобы открыть курсор в определенный момент времени , Если указанная начальная точка находится в прошлом, она должна находиться во временном интервале оплога.

Содержит ли оплог записи для всех дБ, не разрезанных по коллекциям?

Операционный журнал - это ограниченная коллекция , содержащая хронологическую историю всех изменений данных для набора реплик или сегмента. Аспект ограниченного сбора означает, что у оплога есть ограниченное окно истории: как только максимальный размер оплога достигнут, самые старые записи удаляются, чтобы освободить место для новых документов. Данные local.oplog.rs не фильтруются по коллекции или пространству имен.

...