Partilhar via


Orleans Provedores de fluxo

Os fluxos podem vir em diferentes formas e feitios. Alguns fluxos podem entregar eventos por meio de links TCP diretos, enquanto outros entregam eventos por meio de filas duráveis. Diferentes tipos de fluxo podem usar diferentes estratégias de lote, diferentes algoritmos de cache ou diferentes procedimentos de backpressure. Para evitar restringir os aplicativos de streaming a apenas um subconjunto dessas opções comportamentais, os provedores de fluxo são pontos de extensibilidade para o Orleans Streaming Runtime que permitem que os usuários implementem qualquer tipo de fluxo. Esse ponto de extensibilidade é semelhante em espírito aos Orleans provedores de armazenamento.

Provedor de fluxo do Hub de Eventos do Azure

O Hub de Eventos do Azure é um serviço de ingestão de dados em tempo real totalmente gerenciado que é capaz de receber e processar milhões de eventos por segundo. Ele foi projetado para lidar com a ingestão de dados de alta taxa de transferência e baixa latência de várias fontes e o processamento subsequente desses dados por vários consumidores.

Os Hubs de Eventos são frequentemente usados como a base de uma arquitetura de processamento de eventos maior, onde servem como a "porta de entrada" para um pipeline de eventos. Ele pode ser usado para ingerir dados de uma ampla variedade de fontes, incluindo feeds de mídia social, dispositivos IoT e arquivos de log. Um dos principais benefícios dos Hubs de Eventos é a capacidade de expandir horizontalmente para atender às necessidades até mesmo das maiores cargas de trabalho de processamento de eventos. Também é altamente disponível e tolerante a falhas, com várias réplicas de dados distribuídos em várias regiões do Azure para garantir alta disponibilidade.

A Microsoft.Orleans. O pacote NuGet Streaming.EventHubs contém o provedor de fluxo de Hubs de Eventos.

Provedor de fluxo de fila do Azure (AQ)

O provedor de fluxo da Fila do Azure (AQ) fornece eventos nas Filas do Azure. No lado do produtor, o provedor de fluxo AQ enfileira eventos diretamente na Fila do Azure. No lado do consumidor, o provedor de fluxo AQ gerencia um conjunto de agentes de extração que extraem eventos de um conjunto de Filas do Azure e os entregam ao código do aplicativo que os consome. Pode-se pensar nos agentes de tração como um "microsserviço" distribuído — um componente distribuído particionado, altamente disponível e elástico. Os agentes de tração são executados dentro dos mesmos silos que hospedam grãos de aplicação. Assim, não há necessidade de executar funções de trabalho separadas do Azure para extrair das filas. A existência de agentes pulling, seu gerenciamento, backpressure, balanceamento das filas entre eles e transferência de filas de um agente com falha para outro agente são totalmente gerenciados pelo Orleans Streaming Runtime e são transparentes para o código do aplicativo que usa fluxos.

A Microsoft.Orleans. O pacote NuGet Streaming.AzureStorage contém o provedor de fluxo de armazenamento de fila do Azure.

Adaptadores de fila

Diferentes provedores de fluxo que entregam eventos em filas duráveis exibem comportamento semelhante e estão sujeitos a uma implementação semelhante. Portanto, fornecemos um extensível PersistentStreamProvider genérico que permite aos desenvolvedores conectar diferentes tipos de filas sem escrever um provedor de fluxo completamente novo do zero. PersistentStreamProvider usa um IQueueAdapter componente que abstrai detalhes específicos da implementação da fila e fornece meios para enfileirar e desfilar eventos. Todo o resto é tratado pela lógica dentro do PersistentStreamProvider. O Provedor de Fila do Azure mencionado acima também é implementado dessa maneira: é uma instância que PersistentStreamProvider usa um AzureQueueAdapterarquivo .

Provedor de fluxo de mensagens simples

O provedor de fluxo de mensagens simples, também conhecido como provedor de SMS, fornece eventos por TCP utilizando mensagens de grão regulares Orleans . Como os eventos no SMS são entregues através de links TCP não confiáveis, o SMS não garante a entrega confiável de eventos e não reenvia automaticamente mensagens com falha para fluxos de SMS. Por padrão, a chamada do produtor para OnNextAsync retorna um Task que representa o status de processamento do consumidor de fluxo, que informa ao produtor se o consumidor recebeu e processou com êxito o evento. Se essa tarefa falhar, o produtor pode decidir enviar o mesmo evento novamente, alcançando assim a confiabilidade no nível do aplicativo. Embora a entrega de mensagens de fluxo seja o melhor esforço, os próprios fluxos de SMS são confiáveis. Ou seja, a vinculação de assinante a produtor realizada pelo Pub-Sub é totalmente confiável.

Consulte também

Orleans Detalhes da implementação do Streams