Azure EventHub: возможна автономная буферизация/постановка в очередь событий?

Здесь я не могу найти однозначного ответа. Мой сервис IoT должен терпеть ненадежные соединения. В настоящее время я сам управляю локальным кешем и повторяю передачу облачных BLOB-объектов так часто, как это необходимо. Могу ли я заменить его службой Azure EventHub? т. е. будет ли клиент EventHub (в IoT-Core) буферизовать события, пока соединение не будет доступно? Если да, то где информация об этом?


person GGleGrand    schedule 27.12.2015    source источник


Ответы (1)


Согласно: https://azure.microsoft.com/en-us/documentation/articles/event-hubs-programming-guide/

Вы отвечаете за отправку и кэширование:

Отправляйте асинхронно и отправляйте в масштабе

Вы также можете асинхронно отправлять события в концентратор событий. Асинхронная отправка может увеличить скорость, с которой клиент может отправлять события. Оба метода Send и SendBatch доступны в асинхронных версиях, которые возвращают объект Task. Хотя этот метод может увеличить пропускную способность, он также может привести к тому, что клиент продолжит отправлять события, даже если он регулируется службой концентраторов событий, и может привести к тому, что клиент столкнется со сбоями или потеряет сообщения, если не будет правильно реализовано. Кроме того, вы можете использовать свойство RetryPolicy на клиенте для управления параметрами повторных попыток клиента.

person Erik Oppedijk    schedule 31.12.2015
comment
Спасибо, что нашли это. ИМХО, реальный IoT должен терпеть сбои подключения без потери данных, поэтому я буду придерживаться своего решения Brokered Service Bus и проверю упомянутую RetryPolicy, чтобы увидеть, может ли я поставить в очередь/кэшировать несколько сообщений, и повторять попытку, пока соединение не существует. - person GGleGrand; 31.12.2015
comment
... посмотрите, есть ли у кого-нибудь дополнительная информация, прежде чем я отмечу ответ как ответ. - person GGleGrand; 31.12.2015
comment
Нет проблем, даже с MQTT, похоже, нет клиентского кеша. Протоколы для IoT ориентированы на онлайн-сценарий, офлайн-режим будет разным для каждого устройства и приложения, поэтому, я думаю, здесь нет решения. - person Erik Oppedijk; 31.12.2015
comment
Похоже, на данный момент это предел: azure.microsoft.com/en-us/documentation/articles/ Повторная попытка — это не то же самое, что буферизация, но в некоторых случаях этого может быть достаточно. У ServiceBus здесь лучшие карты. Нет упоминания о Event Hub. - person GGleGrand; 04.01.2016