MongoDB изменить потоки гарантированной доставки? - PullRequest
0 голосов
/ 30 апреля 2020

Я собирался выбрать RethinkDB для приложения чата, которое я создаю, из-за его changefeeds функциональности, но потом я обнаружил, что MongoDB имеет нечто похожее, называемое Изменение потоков . Каковы наиболее заметные различия между этими двумя?

В частности, я видел в документации RethinkDB, что:

Поскольку каналы изменений являются однонаправленными, без подтверждения от клиентов, они не могут гарантировать Доставка. Если вам нужно обновление в режиме реального времени с гарантией доставки, рассмотрите возможность использования модели, которая рассылает клиентам через брокера сообщений, такого как RabbitMQ.

Мне было интересно, одинаковые ли потоки изменений MongoDB? Я гарантированно получаю обновления каждый раз, когда изменяются данные, или нет?

1 Ответ

1 голос
/ 30 апреля 2020

Потоки изменений MongoDB обрабатываются клиентом, а не сервером.

Клиент получает токен возобновления с каждой партией обновлений и передает этот токен обратно при запросе дополнительных данных с сервера.

Это не совсем гарантия. Потоки изменений зависят от оплога набора реплик, поэтому, если клиент ждет слишком долго, прежде чем запросить дополнительные данные, событие, указанное маркером возобновления, возможно, было удалено из оплога, и клиент получит ошибку, указывающую, что обновления, вероятно, были пропущены.

...