Ideias de solução
Este artigo é uma ideia de solução. Se quiser que expandamos o conteúdo com mais informações, como potenciais casos de utilização, serviços alternativos, considerações de implementação ou orientações de preços, informe-nos ao fornecer feedback do GitHub.
Este artigo descreve uma arquitetura condicionada por eventos sem servidor que utiliza Hubs de Eventos do Azure e Funções do Azure para ingerir e filtrar um fluxo de dados para o armazenamento de bases de dados.
Arquitetura
Fluxo de dados
- Os eventos chegam ao Hub de Eventos de Entrada.
- A Função do Azure de Eliminação de Lotes e Filtragem é acionada para processar o evento. Este passo filtra eventos indesejados e elimina os lotes dos eventos recebidos antes de os submeter para o Hub de Eventos de Saída.
- Se a Função do Azure de Eliminação de Lotes e Filtragem não conseguir armazenar o evento com êxito, o evento será submetido para o Hub de Eventos Deadletter 1.
- Os eventos que chegam ao Hub de Eventos de Saída acionam a Transformação da Função do Azure. Esta Função do Azure transforma o evento numa mensagem para a instância do Azure Cosmos DB.
- O evento é armazenado numa base de dados do Azure Cosmos DB.
- Se a Função transformar o Azure não conseguir armazenar o evento com êxito, o evento será guardado no Hub de Eventos Deadletter 2.
Componentes
- Os Hubs de Eventos ingerem o fluxo de dados. Os Hubs de Eventos foram concebidos para cenários de transmissão em fluxo de dados de alto débito.
- Funções do Azure é uma opção de computação sem servidor. Utiliza um modelo baseado em eventos, em que um fragmento de código (uma função) é invocado por um acionador.
- O Azure Cosmos DB é um serviço de base de dados com vários modelos que está disponível num modo sem servidor e baseado no consumo. Neste cenário, a função de processamento de eventos armazena registos JSON com o Azure Cosmos DB para NoSQL.
Detalhes do cenário
Esta ideia de solução descreve uma variação de uma arquitetura baseada em eventos sem servidor que utiliza Os Hubs de Eventos e Funções do Azure para ingerir e processar um fluxo de dados. Os resultados são escritos numa base de dados para armazenamento e revisão futura depois de serem desempastados e filtrados.
Para saber mais sobre os conceitos básicos, considerações e abordagens para o processamento de eventos sem servidor, consulte a arquitetura de referência de processamento de eventos sem servidor.
Potenciais casos de utilização
Um caso de utilização popular para implementar um padrão de processamento de fluxo de eventos ponto a ponto inclui o serviço de ingestão de transmissão em fluxo dos Hubs de Eventos para receber e processar eventos por segundo através de uma lógica de transformação e de eliminação de lotes implementada com funções altamente dimensionáveis e acionadas pelo hub de eventos.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Rajasa Savant | Engenheiro Sénior de Desenvolvimento de Software
Para ver perfis do LinkedIn não públicos, inicie sessão no LinkedIn.
Passos seguintes
- Documentação dos Hubs de Eventos do Azure
- Introdução às Funções do Azure
- Documentação das Funções do Azure
- Descrição geral do Azure Cosmos DB
- Escolher uma API no Azure Cosmos DB
Recursos relacionados
- O processamento de eventos sem servidor é uma arquitetura de referência que detalha uma arquitetura típica deste tipo, com exemplos de código e debate de considerações importantes.
- A monitorização do processamento de eventos sem servidor fornece uma descrição geral e orientações sobre a monitorização de arquiteturas condicionadas por eventos sem servidor como esta.
- O Azure Kubernetes no processamento de fluxos de eventos descreve uma variação de uma arquitetura baseada em eventos sem servidor em execução no Azure Kubernetes com o dimensionador KEDA.
- O cenário de ligação privada no processamento de fluxos de eventos é uma ideia de solução para implementar uma arquitetura semelhante numa rede virtual com pontos finais privados, de modo a melhorar a segurança.