CosmosDB V3 Настройка ChangeFeedProcessor ChangeFeedOptions для использования ключа разделения - PullRequest
0 голосов
/ 07 мая 2020

Верно ли, что вы не можете установить ChangeFeedOptions (в частности, PartitionKey и lease-prefix) при использовании высокоуровневого ChangeFeedProcessor? Эта библиотека слишком высокого уровня? Я использую V3 Cosmos. Все примеры в сети показывают низкоуровневые способы настройки V2. Вот V3 ProcessorBuilder ... Мне нужен .options или .WithPartitionKey, et c.

 ChangeFeedProcessor changeFeedProcessor = cosmosClient.GetContainer("myDB", "myContainer")
            .GetChangeFeedProcessorBuilder<myData>("changeFeedTest", HandleChangesAsync)
                .WithPollInterval(new TimeSpan(0, 0, 1))   
                .WithInstanceName("Host1" )
                .WithLeaseContainer(leaseContainer)
                .Build();

Может, вам поможет конкретный пример:

Допустим, у вас есть игра в шахматы. Ходы игроков отправляются в CosmosDB в контейнере PlayerActions. Все игроки и зрители этой игры подписываются на ленту изменений. Работает нормально, но в масштабе? Когда у вас запущено 10 000 игр, вы не хотите, чтобы каждый клиент получал в 10 000 раз больше уведомлений, чем следовало бы. Только те из GameID (PartitionKey), которые их интересуют. Я почти уверен, что никто не посоветует мне иметь 1 контейнер на игру, поэтому мне нужно отфильтровать ленту изменений. Я бы предпочел использовать библиотеку процессора V3, но мне может понадобиться go с API более низкого уровня. У кого-нибудь есть какие-нибудь советы, прежде чем я сделаю дополнительную работу?

Вот еще один способ задать вопрос. В примере в документации здесь: https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed-processor Они показывают города AE, идущие на один хост-процессор, но, похоже, больше нет API для того, что настроено с помощью GetChangeFeedProcessorBuilder.

1 Ответ

0 голосов
/ 19 мая 2020

Это правда, что обработчик изменений (модель pu sh) не поддерживает ключи разделов (как указано в ссылке do c ниже), и ответ - новая функция «изменение модели вытягивания канала» (все еще) в предварительной версии 3.9.0. (выходит сегодня). Но это есть в более ранней версии 3.9.0-preview3. Независимо от того, работает это или нет, я пока не могу комментировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...