Criar um hub de eventos usando a CLI do Azure
Sua equipe decide usar as funcionalidades dos Hubs de Eventos do Azure para gerenciar e processar os crescentes volumes de transações recebidos pelo sistema.
O hub de eventos é um recurso do Azure, portanto, a primeira etapa será criar um hub no Azure e configurá-lo para atender aos requisitos específicos dos seus aplicativos.
O que é Hub de Eventos do Azure?
Os Hubs de Eventos do Azure são um serviço de processamento de eventos baseado em nuvem que pode receber e processar milhões de eventos por segundo. Os Hubs de Eventos atuam como uma porta de entrada para um pipeline de eventos, recebendo dados e armazenando-os até que os recursos de processamento estejam disponíveis.
Uma entidade que envia dados para o hub de eventos é chamada de editor e uma entidade que lê dados dos hubs de eventos é chamada de consumidor ou assinante. O hub de eventos fica entre os editores e os assinantes para dividir a produção (dos editores) e o consumo (para os assinantes) de um fluxo de dados de eventos. Essa desassociação é essencial para gerenciar cenários em que a taxa de produção de eventos é consideravelmente maior do que o consumo. A ilustração a seguir mostra a função de um hub de eventos.
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 publicação (individual ou em lote) não pode exceder 1 MB.
Publicadores e assinantes
Os editores de eventos são qualquer aplicativo ou dispositivo que possa enviar eventos usando HTTPS, AMQP (Advanced Message Queuing Protocol) 1.0 ou Apache Kafka.
- Para publicadores que enviam dados com frequência, o AMQP tem um desempenho melhor. No entanto, ela tem maior sobrecarga de sessão inicial, porque um soquete bidirecional persistente e TLS (segurança de nível de transporte), ou SSL/TLS, deve ser configurado primeiro.
- Para publicações mais intermitentes, o HTTPS é a melhor opção. Embora o HTTPS exija mais sobrecarga para cada solicitação, não existe a sobrecarga de inicialização de sessão.
- Os Hub de Eventos fornecem um ponto de extremidade compatível com o produtor e APIs de consumidor do Apache Kafka que pode ser usado pela maioria dos aplicativos clientes Apache Kafka existentes, como uma alternativa à execução do cluster dessa plataforma de código aberto. Os Hubs de Eventos dão suporte aos clientes de produtor e APIs de consumidor do Apache Kafka na versão 1.0 e posteriores. Para saber mais, consulte Hubs de Eventos para o Apache Kafka.
Os assinantes de eventos são aplicativos que usam um dos dois métodos programáticos compatíveis para receber e processar eventos de um hub de eventos.
- EventHubReceiver – um método simples que fornece opções de gerenciamento limitadas.
- EventProcessorHost: um método eficiente que usaremos mais adiante neste módulo.
Grupos de consumidores
Um grupo de consumidores do hub de eventos representa uma exibição específica de um fluxo de dados do hub de eventos. Ao empregar grupos de consumidores separados, vários aplicativos assinantes podem processar um fluxo de dados de eventos independentemente, sem afetar outros aplicativos. No entanto, o uso de vários grupos de consumidores não é um requisito e, para muitos aplicativos, o único grupo de consumidores padrão é suficiente.
Preço
Há quatro camadas de preço para Hubs de Eventos do Azure: Básico, Standard, Premium e Dedicado. As camadas diferem em conexões compatíveis, no número de grupos de consumidores disponíveis e na taxa de transferência. Ao usar a CLI do Azure para criar um namespace dos Hubs de Eventos, se você não especificar um tipo de preço, o padrão Standard (20 grupos de consumidores, 1000 conexões agenciadas) será atribuído. Para ver as principais diferenças entre essas camadas, confira Hubs de Eventos do Azure – Preços.
Criar e configurar um hub de eventos
Há duas etapas principais para criar um hub de eventos. A primeira etapa é definir o namespace dos Hubs de Eventos. A segunda etapa é criar um hub de eventos no namespace.
Definir um namespace dos Hubs de Eventos
Um namespace dos Hubs de Eventos é um contêiner para gerenciar um ou mais hubs de eventos. A criação de um namespace dos Hubs de Eventos normalmente envolve a seguinte configuração:
Definir configurações no nível do namespace
A capacidade do namespace (configurada usando unidades de taxa de transferência para a camada standard), a faixa 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 nesse namespace. Se você não definir essas configurações, um valor padrão será usado: 1
para a capacidade e Standard
para o tipo de preço.
Lembre-se do seguinte:
É necessário equilibrar a configuração em relação às suas expectativas de orçamento do Azure.
Você pode considerar a configuração de diferentes hubs de eventos para diferentes requisitos de taxa de transferência. Por exemplo, caso tenha um aplicativo de dados de vendas e esteja planejando obter dois hubs de eventos, convém usar um namespace separado para cada hub.
Você configura um namespace para a coleta de dados de vendas em tempo real com alta taxa de transferência e um namespace para a coleta de log de eventos não frequente. Dessa forma, você só precisa configurar uma alta capacidade de taxa de transferência (e pagar por ela) no hub de dados de vendas em tempo real.
Selecione um nome exclusivo para o namespace. O namespace está acessível por meio desta URL: namespace.servicebus.windows.net
Defina as seguintes propriedades opcionais:
Tornar esta zona de namespace redundante. A redundância de zona replica os dados entre data centers separados, que têm potência, rede e infraestruturas de resfriamento independentes.
Habilitar o escalonamento automático de unidades de produtividade (camada standard). A ampliação automática oferece uma opção de escalonamento vertical automático, aumentando o número de unidades de produtividade até um valor máximo. Essa opção é útil para evitar limitação nas situações em que as taxas de dados de entrada ou saída excedem o número atualmente definido de unidades de produtividade.
Comandos da CLI do Azure para criar um namespace dos Hubs de Eventos
Para criar um namespace dos Hubs de Eventos, use os comandos az eventhubs namespace
. Veja a seguir uma breve descrição dos comandos usados no exercício.
Comando | Descrição |
---|---|
create |
Cria um namespace dos Hubs de Eventos. |
authorization-rule |
Todos os hubs de eventos no 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 retorna a cadeia de conexão do namespace dos Hubs de Eventos. |
Configurar um novo hub de eventos
Depois de criar um namespace dos Hubs de Eventos, você poderá criar um hub de eventos. Vários parâmetros obrigatórios precisam ser definidos ao criar um hub de eventos.
Os seguintes parâmetros são necessários para criar um hub de eventos:
- Nome do hub de eventos: um nome do hub de eventos que seja exclusivo em sua assinatura e que:
- Tenha entre 1 e 50 caracteres.
- Contenha somente letras, números, pontos, hifens e sublinhados.
- Comece e termine 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 standard). O número de partições deve estar diretamente relacionado ao número esperado de consumidores simultâneos e não pode ser alterado após a criação do hub. A partição separa o fluxo de mensagens, de modo que os aplicativos destinatário ou de consumidor precisem ler somente um subconjunto específico do fluxo de dados. Se não for definido, esse valor será padronizado como 4.
- Retenção de mensagens: o número de dias (1 a 7 para a camada standard) durante os quais as mensagens permanecem disponíveis, caso o fluxo de dados precise ser reproduzido por qualquer motivo. Se não definido, esse valor será padronizado como 7.
Você também pode configurar um hub de eventos para transmitir dados para um Armazenamento de Blobs do Azure ou um Azure Data Lake Storage.
Comandos da CLI do Azure para criar um hub de eventos
Para criar um hub de eventos usando a CLI do Azure, execute um conjunto de comandos az eventhubs eventhub
. Veja a seguir uma breve descrição dos comandos usados no exercício.
Comando | Descrição |
---|---|
create |
Cria o hub de eventos em um namespace especificado. |
show |
Exibe os detalhes do hub de eventos. |
Observação
Para cotas e limites para diferentes camadas de hubs de eventos, confira Limites e cotas de Hubs de Eventos do Azure.
Resumo
É necessário configurar um namespace dos Hubs de Eventos e o hub de eventos para implantar os Hubs de Eventos do Azure. Na próxima unidade, você passará pelas etapas detalhadas de criação de um namespace e um hub de eventos.