На самом деле, я борюсь с подобным вопросом, также не могу найти какой-либо конкретной задачи c (так же, как @Sajeetharan), но мои выводы могут помочь вам. Мне было интересно, как прослушивание канала изменений повлияет на зарегистрированный трафик c (или лучше: количество RU). Я ожидал, что он будет иметь минимальное влияние и в любом случае намного ниже, чем механизм ручного опроса. Это должно быть основным пунктом подачи изменений, не так ли?
Примечание: Я использую C# и CosmosDB-MongoDB-API . Таким образом, опытное поведение может быть следствием реализации API, а не результатом бухгалтерии CosmosDB.
В любом случае, я заметил это на своей странице метрик:
Это был тест с приложением C#, которое просто запускало Watch()
в коллекции, печатая маркер, как только наблюдатель заметил изменение. В основном это:
using (var cursor = c.Watch(pipeline, new ChangeStreamOptions
{
FullDocument = ChangeStreamFullDocumentOption.UpdateLookup,
}))
{
foreach (var change in cursor.ToEnumerable())
{
// process change event
Console.WriteLine(change);
}
}
Без изменений в коллекции, что-то явно вызвало затраты около 1 RU / s ... В моем случае, мне не нужны немедленные уведомления, поэтому ручной опрос каждые несколько секунд будет намного дешевле. Похоже, это сильно сужает назначение ленты новостей.
Прочитав ответ @MatiasQuaranta (особенно заметив разницу в 2RU / с против 1RU / с), я хотел предоставить эту информацию также. Я все еще надеюсь, что кто-то придет с более документированным ответом.