Поделиться через


Orleans поставщики потоков

Потоки могут поступать в различных формах и формах. Некоторые потоки могут доставлять события через прямые tcp-каналы, а другие предоставляют события через устойчивые очереди. Различные типы потоков могут использовать различные стратегии пакетной обработки, различные алгоритмы кэширования или различные процедуры обратной обработки. Чтобы избежать ограничения потоковой передачи приложений только подмножества этих вариантов поведения, поставщики потоков являются точками расширяемости в Orleans потоковой среде выполнения, которые позволяют пользователям реализовать любой тип потока. Эта точка расширяемости похожа на служба хранилища Orleans поставщиков.

Поставщик потоков концентратора событий Azure

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

Центры событий часто используются в качестве основы более крупной архитектуры обработки событий, где она выступает в качестве передней двери для конвейера событий. Его можно использовать для приема данных из различных источников, включая веб-каналы социальных сетей, устройства Интернета вещей и файлы журналов. Одним из ключевых преимуществ Центров событий является возможность горизонтального масштабирования в соответствии с потребностями даже крупнейших рабочих нагрузок обработки событий. Кроме того, это высокодоступная и отказоустойчивая, с несколькими реплика данных, распределенных по нескольким регионам Azure, чтобы обеспечить высокий уровень доступности.

Microsoft .Orleans. Пакет NuGet Streaming.EventHubs содержит поставщик потоковых центров событий.

Поставщик потоковой передачи очереди Azure (AQ)

Поставщик потоковой передачи очереди Azure (AQ) предоставляет события по очередям Azure. На стороне производителя поставщик потоков AQ помещает события непосредственно в очередь Azure. На стороне потребителя поставщик потоков AQ управляет набором агентов извлечения , которые извлекают события из набора очередей Azure и доставляют их в код приложения, который использует их. Вытягивающий агент может рассматриваться как распределенный микрослужба— секционированный, высокодоступный и эластичные распределенные компоненты. Агенты извлечения выполняются внутри одних и то же силосов, которые размещаются в приложениях. Таким образом, нет необходимости запускать отдельные рабочие роли Azure для извлечения из очередей. Существование агентов извлечения, управления, обратной обработки, балансировки очередей между ними и передачи очередей из неудавшемся агента другому агенту полностью управляет Orleans среда выполнения потоковой передачи и прозрачны для кода приложения, использующего потоки.

Microsoft.Orleans. Streaming.Azure служба хранилища пакет NuGet содержит поставщик потока хранилища очередей Azure.

Адаптеры очередей

Различные поставщики потоков, которые предоставляют события по устойчивым очередям, демонстрируют аналогичное поведение и подвергаются аналогичной реализации. Таким образом, мы предоставляем универсальную расширяемую возможность PersistentStreamProvider , чтобы разработчики подключались к различным типам очередей, не записывая совершенно новый поставщик потоков с нуля. PersistentStreamProviderIQueueAdapter использует компонент, который абстрагирует конкретные сведения о реализации очереди и предоставляет средства для выполнения и отмены событий. Все остальные обрабатываются логикой внутри PersistentStreamProvider. Поставщик очередей Azure, упоминание выше, также реализуется таким образом: это экземплярPersistentStreamProvider, использующий объектAzureQueueAdapter.

Поставщик потока простых сообщений

Простой поставщик потока сообщений, также известный как поставщик SMS, предоставляет события по протоколу TCP, используя регулярные Orleans сообщения для зерна. Так как события в SMS доставляются по ненадежным TCP-ссылкам, SMS не гарантирует надежную доставку событий и не автоматически перенаправляет сообщения о сбое для потоков SMS. По умолчанию вызов OnNextAsync производителя возвращает Task значение, представляющее состояние обработки потребителя потока, которое сообщает производителю, успешно ли получил и обработал событие. Если эта задача завершается ошибкой, производитель может повторно отправить то же событие, что позволяет добиться надежности на уровне приложения. Несмотря на то, что доставка сообщений потоков является наиболее оптимальной, сами потоки SMS являются надежными. То есть привязка подписчика к производителю, выполняемая Pub-Sub, полностью надежна.

См. также

Orleansсведения о реализации Потоки