Governança de recursos com grupos de aplicativos
Os Hubs de Eventos do Azure permitem controlar cargas de trabalho de streaming de eventos de aplicativos cliente que se conectam aos 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 cotas e de acesso a um grupo de aplicativos (grupo de aplicativos cliente).
Observação
Os grupos de aplicativos estão disponíveis atualmente apenas nas camadas Premium e Dedicada.
Grupos de aplicativos
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 poderá ter como escopo um único namespace de Hubs de Eventos ou hubs de eventos (entidade) dentro de um namespace e deverá usar uma condição de identificação exclusiva como, por exemplo, o contexto de segurança – SAS (Assinaturas de Acesso Compartilhado) ou ID do aplicativo do Microsoft Entra – do aplicativo cliente.
Atualmente, os Hubs de Eventos dão suporte ao uso de contextos de segurança para a criação de grupos de aplicativos. Portanto, cada grupo de aplicativos deverá ter uma política de SAS exclusiva ou uma ID do aplicativo do Microsoft Entra associada. 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 em 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.
Conforme ilustrado abaixo, você pode criar grupos de aplicativos com base no contexto de segurança que cada aplicativo cliente usa. Portanto, os grupos de aplicativos podem abranger vários aplicativos cliente usando o mesmo contexto de segurança.
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 | Descrição |
---|---|
name | 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 de SAS ou ID do aplicativo do 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 dos Hubs de Eventos |
isEnabled | Determine se os aplicativos cliente de um grupo de aplicativos podem acessar namespaces dos 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 dão suporte a políticas de limitação.
Políticas de limitação
Você pode ter políticas de limitação especificadas usando métricas diferentes de entrada e saída. Os grupos de aplicativos dão suporte ao uso das métricas a seguir para limitar as cargas de trabalho de entrada ou de saída de aplicativos cliente.
Parâmetro | Descrição |
---|---|
IncomingBytes | Taxa de transferência do editor em bytes por segundo. |
OutgoingBytes | Taxa de transferência do consumidor em bytes por segundo. |
IncomingMessages | Número de eventos publicados por segundo. |
OutgoingMessages | 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 ou encontrar exceções de servidor ocupado.
Política de limitação – limites
A tabela a seguir mostra limites mínimos que você pode definir para uma ID de métrica diferente na política de limitação:
ID da métrica | Limite mínimo |
---|---|
IncomingByte | 1 KB |
OutgoingByte | 1 KB |
IncomingMessage | 1 |
Mensagem de saída | 1 |
Observação
Os limites definidos no valor de limite da política de limitação teriam precedência sobre qualquer valor definido para propriedades de tópico do Kafka. Por exemplo, IncomingBytes
teria maior prioridade sobre message.max.bytes
.
Espera-se que a limitação do grupo de aplicativos restrinja cenários de tráfego consistentes acima do permitido (abrangendo alguns minutos). Intermitências rápidas no tráfego por alguns segundos podem não ter limitação por meio dos Grupos de Aplicativos. É recomendável examinar a taxa de transferência permitida no horizonte de tempo de alguns minutos para validar a limitação.
Códigos de erro e suporte de protocolo
O grupo de aplicativos dá suporte a operações de limitação que ocorrem 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 do erro | Mensagem de erro |
---|---|---|---|
AMQP | Enviar | 5.0004 | Subcódigo:50013, O grupo de aplicativos está sendo limitado com a ID do grupo de aplicativos e o 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 | Agente: violação de política |
Devido a restrições no nível do protocolo, não há suporte para mensagens de erro 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.
Como desabilitar grupos de aplicativos
O grupo de aplicativos está habilitado por padrão e isso significa que todos os aplicativos cliente podem acessar o namespace dos Hubs de Eventos para publicar e consumir eventos aderindo às políticas do grupo de aplicativos.
Quando um grupo de aplicativos estiver desabilitado, o cliente ainda poderá se conectar ao hub de eventos, mas a autorização falhará e 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óximas etapas
Para obter instruções sobre como criar e gerenciar grupos de aplicativos, confira Governança de recursos para aplicativos cliente usando o portal do Azure