Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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, algoritmos de cache ou procedimentos de controle de pressão. Os provedores de fluxo são pontos de extensibilidade no Orleans Streaming Runtime que permitem implementar qualquer tipo de fluxo, evitando restrições em aplicativos de streaming para apenas um subconjunto dessas escolhas comportamentais. Este ponto de extensibilidade é semelhante em conceito aos Orleans fornecedores de armazenamento.
Provedor de fluxo do Hub de Eventos do Azure
Os Hubs de Eventos do Azure são um serviço de ingestão de dados em tempo real totalmente gerenciado 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, servindo como a "porta de entrada" para um pipeline de eventos. Você pode usá-lo para ingerir dados de várias 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ídas em várias regiões do Azure para garantir alta disponibilidade.
A Microsoft.Orleans.Streaming.EventHubs pacote NuGet contém o provedor de transmissão de Hubs de Eventos.
Fornecedor de fluxo de fila do Azure (AQ)
O fornecedor de fluxo de Fila do Azure (AQ) entrega eventos através das Filas do Azure. No lado do produtor, o fornecedor do fluxo AQ coloca 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. Você pode pensar nos agentes de extraçã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. O Orleans Streaming Runtime gere completamente a existência de agentes de extração, seu gerenciamento, a contrapressão, equilibrando as filas entre eles e transferindo filas de um agente com falha para outro agente. Tudo isso é transparente para o código da aplicação que utiliza 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 fornecem eventos em filas duráveis exibem comportamento semelhante e estão sujeitos a implementações semelhantes. Portanto, fornecemos um PersistentStreamProvider genérico e extensível que lhe permite ligar a diferentes tipos de filas sem ter que criar 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. A lógica interna PersistentStreamProvider
lida com todo o resto. O Provedor de Fila do Azure mencionado acima também é implementado desta forma: é uma instância de PersistentStreamProvider
que usa um AzureQueueAdapter
.
Provedor de fluxo de mensagens simples
O provedor de fluxo de mensagens simples, também conhecido como provedor de SMS, entrega eventos através de TCP utilizando mensagens de grão regulares Orleans. Como os eventos 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 da corrente. Isso informa ao produtor se o consumidor recebeu e processou o evento com sucesso. Se essa tarefa falhar, o produtor pode decidir enviar o mesmo evento novamente, alcançando confiabilidade no nível do aplicativo. Embora a entrega de mensagens de fluxo seja baseada no melhor esforço, os próprios fluxos de SMS são confiáveis. Ou seja, a vinculação de assinante a produtor realizada por Pub-Sub é totalmente confiável.