Editar

Share via


Sistema de mensagens publicação-assinatura dinâmico do hub de trânsito

Cache do Azure para Redis
Azure Cosmos DB
Hubs de eventos do Azure
Funções do Azure
Barramento de Serviço do Azure

Ideias de soluções

Esse artigo é uma ideia de solução. Caso deseje que ampliemos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações sobre implementação ou diretrizes de preços, fale conosco enviando seus comentários no GitHub.

Este artigo descreve um modelo de publicação-assinatura elástico e flexível para que produtores e consumidores de dados criem e consumam conteúdo ou dados validados e selecionados.

Arquitetura

Diagram of the Transit Hub publish-subscribe messaging system.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. O aplicativo Produtor de Dados publica dados em Hubs de Eventos do Azure, que envia os dados para a função Processamento de Eventos do Azure Functions.

  2. O Produtor de Dados também envia o esquema JSON para armazenamento em um contêiner de Armazenamento do Azure.

  3. A função Processamento de Eventos recupera o esquema JSON do Cache do Azure para Redis para reduzir a latência e usa o esquema para validar os dados.

    Se o esquema ainda não estiver armazenado em cache, a função Processamento de Eventos recuperará o esquema do contêiner de Armazenamento do Azure. A solicitação do esquema também armazena o esquema no Cache do Azure para Redis para recuperação futura.

    Observação

    O Registro de Esquema do Azure em Hubs de Eventos pode ser uma alternativa viável para armazenamento e cache de esquemas JSON. Para saber mais, confira Registro de Esquema do Azure em Hubs de Eventos (versão preliminar).

  4. Se um tópico já existir e os dados forem válidos, a função Processamento de Eventos mesclará os dados no tópico existente Dados Válidos do Barramento de Serviço do Azure e enviará o tópico para o aplicativo Consumidor de Dados.

  5. Se um tópico já existir e os dados forem inválidos, a função Processamento de Eventos mesclará os dados no tópico existente Dados Inválidos do Barramento de Serviço e retornará o tópico ao produtor de dados. O produtor de dados assina os tópicos Dados Inválidos para obter comentários sobre dados inválidos criados pelo produtor.

  6. Se um tópico ainda não existir, a função Processamento de Eventos publicará os novos dados em um tópico Novos Dados do Barramento de Serviço e enviará o tópico para a função Gerenciador de Tópicos do Barramento de Serviço.

  7. Se os novos dados forem válidos, a função Processamento de Eventos também inserirá os dados como um novo registro de Dados de Instantâneo no Azure Cosmos DB.

  8. Se os novos dados forem válidos, a função Gerenciador de Tópicos do Barramento de Serviço criará um novo tópico Dados Válidos do Barramento de Serviço, e enviará o tópico para Hubs de Eventos.

  9. Se os novos dados forem inválidos, a função Gerenciador de Tópicos do Barramento de Serviço criará um novo tópico Dados Inválidos do Barramento de Serviço, e retornará o tópico ao aplicativo Produtor de Dados.

  10. O Processador de Arquivo Simples de Dados de Instantâneo no Azure Data Factory é executado em uma agenda para extrair todos os dados de instantâneo do banco de dados Azure Cosmos DB de Dados de Instantâneo. O processador cria um arquivo simples e o publica em um Arquivo Simples de Dados de Instantâneo no Armazenamento do Azure para downloads.

  11. O aplicativo Consumidor de Dados recupera uma lista de todos os tópicos do Barramento de Serviço que o Gerenciador de Tópicos do Barramento de Serviço tem disponível para assinatura. O aplicativo é registrado no Gerenciador de Tópicos do Barramento de Serviço para assinar tópicos do Barramento de Serviço.

Componentes

Detalhes do cenário

O Transit Hub é um modelo de publicação-assinatura dinâmico para produtores de dados e consumidores de dados criarem e consumirem conteúdo ou dados validados e selecionados. O modelo é elástico para permitir escala e desempenho. Os produtores de dados podem integrar e carregar dados rapidamente em um serviço. O serviço valida os dados em relação a um esquema fornecido pelo produtor de dados. O serviço disponibiliza os dados validados para que os assinantes consumam os dados relevantes.

O serviço que valida os dados não precisa saber sobre a carga útil, apenas se ela é válida em relação ao esquema fornecido pelo produtor. Essa flexibilidade significa que o serviço pode aceitar novos tipos de carga útil sem precisar ser reimplantado. Essa solução também permite que os consumidores de dados obtenham dados históricos que foram publicados antes do consumidor se inscrever.

Possíveis casos de uso

Este método é especialmente útil nos seguintes cenários:

  • Sistemas de mensagens em que o volume e o status do usuário são desconhecidos ou variam de forma imprevisível
  • Sistemas de publicação que potencialmente precisam dar suporte a fontes de dados novas ou desconhecidas
  • Sistemas de comércio ou emissão de tíquetes que precisam atualizar continuamente os dados e armazená-los em cache para entrega rápida

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas