Partilhar via


Perspetiva do Azure Well-Architected Framework nos Hubs de Eventos do Azure

Os Hubs de Eventos do Azure são um serviço de processamento de eventos escalável que ingere e processa grandes volumes de eventos e dados, com baixa latência e alta confiabilidade. Pode receber e processar milhões de eventos por segundo. Os dados enviados para um hub de eventos podem ser transformados e armazenados usando qualquer provedor de análise em tempo real ou adaptadores de lote e armazenamento.

Para obter mais informações sobre como usar Hubs de Eventos, consulte a documentação dos Hubs de Eventos do Azure para saber como usar Hubs de Eventos para ingerir milhões de eventos por segundo de dispositivos e aplicativos conectados.

Para entender como o uso de Hubs de Eventos ajuda você a alcançar excelência operacional e confiabilidade para sua carga de trabalho, consulte os seguintes artigos:

As seções a seguir são específicas para os Hubs de Eventos do Azure de uma perspetiva do Well Architected Framework:

  • Considerações de design
  • Lista de verificação de configuração
  • Opções de configuração recomendadas
  • Artefatos de origem

Considerações de design

Os Hubs de Eventos do Azure fornecem um SLA de tempo de atividade. Para obter mais informações, consulte SLA para Hubs de Eventos.

Lista de Verificação

Você configurou os Hubs de Eventos do Azure com excelência operacional em mente?

  • Crie políticas SendOnly e ListenOnly para o editor e o consumidor do evento, respectivamente.
  • Ao usar o SDK para enviar eventos para Hubs de Eventos, verifique se as exceções geradas pela política de repetição (EventHubsException ou OperationCancelledException) foram capturadas corretamente.
  • Em cenários de alta taxa de transferência, use eventos em lote.
  • Cada consumidor pode ler eventos de uma a máximas partições suportadas pelo SKU dos Hubs de Eventos
  • Ao desenvolver novas aplicações, use EventProcessorClient (.NET e Java) ou EventHubConsumerClient (Python e JavaScript) como o SDK do cliente.
  • Como parte de sua estratégia de disponibilidade e recuperação de desastres em toda a solução, considere habilitar a opção de recuperação geográfica de desastres dos Hubs de Eventos.
  • Quando uma solução tiver um grande número de editores de eventos independentes, considere o uso de Editores de Eventos para controle de acesso refinado.
  • Não publique eventos em uma partição específica.
  • Ao publicar eventos com frequência, use o protocolo AMQP quando possível.
  • O número de partições reflete o grau de paralelismo a jusante que você pode alcançar.
  • Certifique-se de que cada aplicativo consumidor use um grupo de consumidores separado e apenas um recetor ativo por grupo de consumidores esteja instalado.
  • Ao usar o recurso Capturar, considere cuidadosamente a configuração da janela de tempo e o tamanho do arquivo, especialmente com volumes de eventos baixos.

Recomendações de configuração

Considere as seguintes recomendações para otimizar a confiabilidade ao configurar os Hubs de Eventos do Azure:

Recomendação Description
Ao usar o SDK para enviar eventos para Hubs de Eventos, verifique se as exceções geradas pela política de repetição (EventHubsException ou OperationCancelledException) foram capturadas corretamente. Ao usar HTTPSo , certifique-se de que um padrão de repetição adequado seja implementado.
Em cenários de alta taxa de transferência, use eventos em lote. O serviço fornecerá uma json matriz com vários eventos para os assinantes, em vez de uma matriz com um evento. O aplicativo consumidor deve processar essas matrizes.
Cada consumidor pode ler eventos de uma a máximas partições suportadas pela SKU de Hubs de Eventos. Para alcançar a escala máxima no lado do aplicativo consumidor, cada consumidor deve ler a partir de uma única partição.
Ao desenvolver novas aplicações, use EventProcessorClient (.NET e Java) ou EventHubConsumerClient (Python e JavaScript) como o SDK do cliente. EventProcessorHost foi preterido.
Como parte de sua estratégia de disponibilidade e recuperação de desastres em toda a solução, considere habilitar a opção de recuperação geográfica de desastres dos Hubs de Eventos. Esta opção permite a criação de um namespace secundário em uma região diferente. Somente o namespace ativo recebe mensagens a qualquer momento. As mensagens e os eventos não são replicados para a região secundária. O RTO para o failover regional é de até 30 minutos. Confirme se este RTO está alinhado com os requisitos do cliente e se encaixa na estratégia de disponibilidade mais ampla. Se for necessário um RTO mais alto, considere implementar um padrão de failover do lado do cliente.
Quando uma solução tiver um grande número de editores de eventos independentes, considere o uso de Editores de Eventos para controle de acesso refinado. Os Editores de Eventos definem automaticamente a chave de partição para o nome do editor, portanto, esse recurso só deve ser usado se os eventos forem originados de todos os editores uniformemente.
Não publique eventos em uma partição específica. Se a encomenda de eventos for essencial, implemente a encomenda a jusante ou utilize um serviço de mensagens diferente.
Ao publicar eventos com frequência, use o protocolo AMQP quando possível. O AMQP tem custos de rede mais altos ao inicializar a sessão, mas HTTPS requer sobrecarga de TLS para cada solicitação. O AMQP tem um desempenho superior para publicadores frequentes.
O número de partições reflete o grau de paralelismo a jusante que você pode alcançar. Para obter a taxa de transferência máxima, use o número máximo de partições suportadas pela SKU ao criar o Hub de Eventos. O aumento do número de partições permite dimensionar entidades de processamento simultâneas para corresponder às partições, garantindo uma disponibilidade ideal de envio e recebimento.
Ao usar o recurso Capturar, considere cuidadosamente a configuração da janela de tempo e o tamanho do arquivo, especialmente com volumes de eventos baixos. O Data Lake gen2 cobrará pelo tamanho mínimo da transação. Se você definir a janela de tempo tão baixa que o arquivo não atingiu o tamanho mínimo, você incorrerá em um custo extra.

Artefatos de origem

Para localizar namespaces de Hubs de Eventos com SKU Básica , use a seguinte consulta:

Resources 
| where type == 'microsoft.eventhub/namespaces'
| where sku.name == 'Basic'
| project resourceGroup, name, sku.name

Próximo passo