Governança de recursos com grupos de aplicativos

Os Hubs de Eventos do Azure permitem que você controle cargas de trabalho de streaming de eventos de aplicativos cliente que se conectam a Hubs de Eventos. Você pode criar grupos lógicos conhecidos como grupos de aplicativos em que cada grupo é uma coleção de aplicativos cliente e, em seguida, aplicar políticas de gerenciamento de cota e acesso para um grupo de aplicativos (grupo de aplicativos cliente).

Nota

Os grupos de aplicativos estão disponíveis apenas em níveis premium e dedicado .

Grupos de aplicações

Um grupo de aplicativos é uma coleção de um ou mais aplicativos cliente que interagem com o plano de dados dos Hubs de Eventos. Cada grupo de aplicativos pode ter um escopo para um único namespace de Hubs de Eventos ou hubs de eventos (entidade) dentro de um namespace e deve usar uma condição de identificação exclusiva, como o contexto de segurança - assinaturas de acesso compartilhado (SAS) ou ID do aplicativo Microsoft Entra - do aplicativo cliente.

Atualmente, os Hubs de Eventos oferecem suporte ao uso de contextos de segurança para a criação de grupos de aplicativos. Portanto, cada grupo de aplicativos deve ter uma política SAS exclusiva ou uma ID de aplicativo Microsoft Entra associada a eles. Se preferir, você pode usar o contexto de segurança no nível do hub de eventos para usar um grupo de aplicativos com um hub de eventos específico dentro de um namespace.

Os grupos de aplicativos são entidades lógicas criadas no nível do namespace. Portanto, os aplicativos cliente que interagem com hubs de eventos não precisam estar cientes da existência de um grupo de aplicativos. Os Hubs de Eventos podem associar qualquer aplicativo cliente a um grupo de aplicativos usando a condição de identificação.

Como ilustrado abaixo, você pode criar grupos de aplicativos com base no contexto de segurança usado por cada aplicativo cliente. Portanto, os grupos de aplicativos podem se estender por vários aplicativos cliente usando o mesmo contexto de segurança.

Image showing capturing of Event Hubs data into Azure Storage or Azure Data Lake Storage.

Os grupos de aplicativos não têm associação direta com um grupo de consumidores. Dependendo do identificador do grupo de aplicativos, como o contexto de segurança, um grupo de consumidores pode ter um ou mais grupos de aplicativos associados a ele ou um grupo de aplicativos pode abranger vários grupos de consumidores.

Estes são os principais atributos de um grupo de aplicativos:

Parâmetro Description
nome Nome exclusivo de um grupo de aplicativos.
clientAppGroupIdentifier Associe um grupo de aplicativos a uma condição de identificação exclusiva (ou seja, contexto de segurança, como política SAS ou ID do aplicativo Microsoft Entra).
políticas Lista de políticas, como políticas de limitação que controlam o streaming de eventos entre aplicativos cliente e o namespace Hubs de Eventos
isEnabled Determine se os aplicativos cliente de um grupo de aplicativos podem acessar namespaces de Hubs de Eventos ou não.

Políticas de grupo de aplicativos

Cada grupo de aplicativos pode conter zero ou mais políticas que controlam o acesso ao plano de dados dos aplicativos cliente que fazem parte do grupo de aplicativos. Atualmente, os grupos de aplicativos oferecem suporte a políticas de limitação.

Políticas de limitação

Você pode ter políticas de limitação especificadas usando diferentes métricas de entrada e saída. Os grupos de aplicativos oferecem suporte ao uso das métricas a seguir para limitar as cargas de trabalho de entrada ou saída de aplicativos cliente.

Parâmetro Description
IncomingBytes Taxa de transferência do editor em bytes por segundo.
OutgoingBytes Taxa de transferência do consumidor em bytes por segundo.
Mensagens recebidas Número de eventos publicados por segundo.
Mensagens de Saída Número de eventos consumidos por segundo.

Quando as políticas para grupos de aplicativos são aplicadas, a carga de trabalho do aplicativo cliente pode diminuir a velocidade ou encontrar exceções de ocupado do servidor.

Política de limitação - limites de limite

A tabela a seguir mostra os limites mínimos que você pode definir para diferentes IDs de métricas na política de limitação:

ID da métrica Limite mínimo
IncomingByte 1 KB
OutgoingByte 1 KB
IncomingMessage 5
Mensagem de saída 5

Nota

Os limites definidos no valor limite da política de limitação teriam precedência sobre qualquer valor definido para as propriedades do tópico Kafka. Por exemplo, IncomingBytes teria maior prioridade sobre message.max.bytes.
Espera-se que a limitação do grupo de aplicativos acelere cenários de tráfego consistentes acima do permitido (abrangendo alguns minutos). Explosões rápidas no tráfego por alguns segundos podem não ser limitadas por meio de Grupos de Aplicativos. Observar a taxa de transferência permitida ao longo do horizonte de tempo de poucos minutos é uma abordagem recomendada para validar a limitação.

Suporte de protocolo e códigos de erro

O grupo de aplicativos suporta operações de limitação que acontecem por meio dos seguintes protocolos – AMQP, Kafka e HTTP. A tabela a seguir fornece os códigos de erro esperados retornados por grupos de aplicativos:

Protocolo Operação Código de erro Error message
AMQP Enviar 50004 Subcódigo:50013, O grupo de aplicativos é limitado com o ID do grupo de aplicativos & nome da política
HTTP Enviar 503 Subcódigo: 50013. O grupo de aplicativos é limitado com a ID do grupo de aplicativos e o nome da política
Kafka Enviar PolicyViolation Corretor: violação da política

Devido a restrições no nível do protocolo, as mensagens de erro não são suportadas durante a operação de recebimento. Quando os grupos de aplicativos estão limitando as operações de recebimento, você experimentará um consumo lento de mensagens no lado do consumidor.

Desativando grupos de aplicativos

O grupo de aplicativos é habilitado por padrão e isso significa que todos os aplicativos cliente podem acessar o namespace Hubs de Eventos para publicar e consumir eventos aderindo às políticas de grupo de aplicativos.

Quando um grupo de aplicativos é desabilitado, o cliente ainda poderá se conectar ao hub de eventos, mas a autorização falhará e, em seguida, a conexão do cliente será fechada. Portanto, você verá muitas conexões abertas e fechadas bem-sucedidas, com o mesmo número de falhas de autorização nos logs de diagnóstico.

Próximos passos

Para obter instruções sobre como criar e gerenciar grupos de aplicativos, consulte Governança de recursos para aplicativos cliente usando o portal do Azure