Criar um hub de eventos com a CLI do Azure

Concluído

Sua equipe toma a decisão de usar os recursos dos Hubs de Eventos do Azure para gerenciar e processar os volumes crescentes de transações que chegam pelo seu sistema.

Um hub de eventos é um recurso do Azure, portanto, sua primeira etapa é criar um novo hub no Azure e configurá-lo para atender aos requisitos específicos de seus aplicativos.

O que são os Hubs de Eventos do Azure?

Os Hubs de Eventos do Azure são um serviço de processamento de eventos com base na cloud que consegue receber e processar milhões de eventos por segundo. Os Hubs de Eventos atuam como uma porta de entrada para um pipeline de eventos, recebem dados de entrada e armazenam esses dados até que os recursos de processamento estejam disponíveis.

Uma entidade que envia dados para seu hub de eventos é chamada de editor, e uma entidade que lê dados de um hub de eventos é chamada de consumidor ou assinante. Seu hub de eventos fica entre o editor e o assinante para dividir a produção (do editor) e o consumo (para um assinante) de um fluxo de dados de evento. Esta dissociação ajuda a gerir cenários em que a taxa de produção de eventos é consideravelmente superior ao consumo. A seguinte ilustração mostra a função de um hub de eventos.

An illustration showing an Azure event hub placed between four publishers and two subscribers. The event hub receives multiple events from the publishers, serializes the events into data streams, and makes the data streams available to subscribers.

Eventos

Um evento é um pequeno pacote de informações (um datagrama) que contém uma notificação. Os eventos podem ser publicados individualmente ou em lotes, mas uma única publicação (individual ou em lote) não pode exceder 1 MB.

Publicadores e subscritores

Os editores de eventos são qualquer aplicativo ou dispositivo que pode enviar eventos usando HTTPS, Advanced Message Queuing Protocol (AMQP) 1.0 ou Apache Kafka.

  • Para editores que enviam dados com frequência, o AMQP tem melhor desempenho. No entanto, ele tem uma sobrecarga de sessão inicial mais alta, porque um soquete bidirecional persistente e segurança de nível de transporte (TLS), ou SSL/TLS, precisa ser configurado primeiro.
  • Para publicações mais intermitentes, HTTPS é a melhor opção. Embora o HTTPS exija mais sobrecarga para cada solicitação, não há sobrecarga de inicialização da sessão.
  • Os Hubs de Eventos fornecem um ponto de extremidade compatível com as APIs de produtor e consumidor do Apache Kafka que podem ser usadas pela maioria dos aplicativos cliente Apache Kafka existentes como uma alternativa para executar seu próprio cluster Apache Kafka . Os Hubs de Eventos suportam os clientes de APIs de produtor e consumidor do Apache Kafka na versão 1.0 e superior. Para obter mais informações, consulte Hubs de eventos para Apache Kafka.

Os subscritores de eventos são aplicações que utilizam um dos dois métodos programáticos suportados para receber e processar eventos a partir de um hub de eventos.

  • EventHubReceiver – um método simples que fornece opções de gestão limitada.
  • EventProcessorHost - Um método eficiente que usamos posteriormente neste módulo.

Grupos de consumidores

Um grupo de consumidores do hub de eventos representa uma vista específica de um fluxo de dados do hub de eventos. Quando você usa grupos de consumidores separados, vários aplicativos de assinante podem processar um fluxo de dados de evento de forma independente e sem afetar outros aplicativos. No entanto, a utilização de muitos grupos de consumidores não é um requisito e, para muitas aplicações, um único grupo de consumidores predefinido é suficiente.

Definição de Preços

Há quatro níveis de preços para os Hubs de Eventos do Azure: Básico, Padrão, Premium e Dedicado. As camadas diferem em termos de conexões suportadas, número de grupos de consumidores disponíveis e taxa de transferência. Ao usar a CLI do Azure para criar um namespace de Hubs de Eventos, se você não especificar uma camada de preço, o padrão padrão (20 grupos de consumidores, 1000 conexões intermediadas) será atribuído. Para obter as principais diferenças entre essas camadas, consulte Hubs de Eventos do Azure - Preços.

Criar e configurar um hub de eventos

Há duas etapas principais para criar um novo hub de eventos. O primeiro passo é definir o espaço de nomes dos Hubs de Eventos. O segundo passo é criar um hub de eventos nesse espaço de nomes.

Definir um espaço de nomes dos Hubs de Eventos

Um namespace de Hubs de Eventos é um contêiner para gerenciar um ou mais hubs de eventos. Normalmente, a criação de um espaço de nomes dos Hubs de Eventos envolve a seguinte configuração:

definição das configurações ao nível do espaço de nomes

A capacidade do namespace (configurada usando unidades de taxa de transferência para a camada padrão), a camada de preços e as métricas de desempenho são definidas no nível do namespace. Essas configurações se aplicam a todos os hubs de eventos dentro desse namespace. Se você não definir essas configurações, um valor padrão será usado: 1 para capacidade e Standard para o nível de preço.

Tenha em atenção os seguintes aspetos:

  • Tem de equilibrar a sua configuração tendo em consideração as suas expectativas de orçamento do Azure.

  • Pode optar por configurar hubs de eventos diferentes para os diferentes requisitos de débito. Por exemplo, se você tiver um aplicativo de dados de vendas e estiver planejando dois hubs de eventos, faria sentido usar um namespace separado para cada hub.

    Você configura um namespace para coleta de alta taxa de transferência de dados de vendas em tempo real e um namespace para coleta de log de eventos pouco frequente. Dessa forma, você só precisa configurar (e pagar) alta capacidade de taxa de transferência no hub de dados de vendas em tempo real.

    1. Selecione um nome exclusivo para o espaço de nomes. O espaço de nomes é acessível através deste URL: namespace.servicebus.windows.net

    2. Definir as seguintes propriedades opcionais:

      • Tornar esta zona de espaço de nomes redundante. A redundância de zona replica dados em data centers separados, que têm infraestruturas independentes de energia, rede e refrigeração.

      • Habilite o escalonamento automático de unidades de taxa de transferência (camada padrão). A autoinflação fornece uma opção de escalonamento automático aumentando o número de unidades de taxa de transferência até um valor máximo. Esta opção é útil para evitar a limitação de rede em situações nas quais as taxas de entrada e saída de dados excedem o número de unidades de débito definido atualmente.

Comandos da CLI do Azure para criar um espaço de nomes dos Hubs de Eventos

Para criar um novo namespace de Hubs de Eventos, use az eventhubs namespace comandos. Aqui está uma breve descrição dos comandos que usamos no exercício.

Comando Description
create Cria um namespace de Hubs de Eventos.
authorization-rule Todos os hubs de eventos dentro do mesmo namespace compartilham credenciais de conexão comuns. Você precisa dessas credenciais ao configurar aplicativos para enviar e receber mensagens usando o hub de eventos. Este comando devolve a cadeia de ligação para o seu espaço de nomes dos Hubs de Eventos.

Configurar um novo hub de eventos

Depois de criar um namespace de Hubs de Eventos, você pode criar um hub de eventos. Quando você cria um Hub de eventos, há vários parâmetros obrigatórios.

Os parâmetros seguintes são necessários para criar um hub de eventos:

  • Nome do hub de eventos - Um nome de hub de eventos exclusivo na sua assinatura e:
    • Tem entre 1 e 50 caracteres.
    • Conter apenas letras, números, pontos finais, hífenes e carateres de sublinhado.
    • Começar e terminar com uma letra ou um número.
  • Contagem de partições - O número de partições necessárias em um hub de eventos (entre 2 e 32 para a camada padrão). A contagem de partições deve estar diretamente relacionada ao número esperado de consumidores simultâneos e não pode ser alterada após a criação do hub. A partição separa o fluxo de dados das mensagens, para que as aplicações de consumidor ou recetor apenas precisem de ler um subconjunto específico do fluxo de dados. Se não for definido, o valor padrão será 4.
  • Retenção de mensagens - O número de dias (1 a 7 para a camada padrão) em que as mensagens permanecem disponíveis se o fluxo de dados precisar ser reproduzido por qualquer motivo. Se não for definido, o valor terá como predefinição 7.

Você também pode, opcionalmente, configurar um hub de eventos para transmitir dados para o Armazenamento de Blobs do Azure ou um Armazenamento do Azure Data Lake.

Comandos da CLI do Azure para criar um hub de eventos

Para criar um novo hub de eventos com a CLI do Azure, execute o conjunto de az eventhubs eventhub comandos. Aqui está uma breve descrição dos comandos que usamos no exercício.

Comando Description
create Cria o hub de eventos em um namespace especificado.
show Exibe os detalhes do seu hub de eventos.

Nota

Para cotas e limites para diferentes camadas de Hubs de Eventos, consulte Cotas e limites dos Hubs de Eventos do Azure.

Resumo

Para implantar Hubs de Eventos do Azure, você deve configurar um namespace de Hubs de Eventos e, em seguida, configurar o próprio hub de eventos. Na próxima unidade, você percorre as etapas detalhadas para criar um novo namespace e hub de eventos.