Service Bus e fiabilidade
Faça a gestão completa da mediação de mensagens empresariais com filas de mensagens e tópicos de publicação-subscrição utilizados no Azure Service Bus. Este serviço armazena mensagens num mediador (por exemplo, uma fila) até que a parte consumidora esteja pronta para receber as mensagens.
As vantagens incluem:
- Balanceamento de carga entre trabalhadores concorrentes.
- Encaminhar e transferir dados e controlo em segurança entre os limites de serviço e aplicações.
- Coordenar o trabalho transacional que requer um elevado grau de fiabilidade.
Para obter mais informações sobre como utilizar o Service Bus, veja Azure Service Bus Messaging. Saiba como configurar mensagens que estabelecem ligação a aplicações e serviços entre ambientes no local e na cloud.
Para compreender como o Service Bus contribui para uma carga de trabalho fiável, veja os seguintes tópicos:
- Padrões de mensagens assíncronas e elevada disponibilidade
- Azure Service Bus recuperação após desastre geográfico
- Lidar com interrupções e desastres
As secções seguintes são específicas de Azure Service Bus e fiabilidade:
- Considerações de design
- Lista de verificação de configuração
- Opções de configuração recomendadas
- Artefactos de origem
Considerações de design
Maximizar a fiabilidade com um SLA de tempo de atividade Azure Service Bus. As aplicações configuradas corretamente podem enviar ou receber mensagens ou realizar outras operações numa Fila ou Tópico implementado. Para obter mais informações, veja o SLA do Service Bus.
Outras considerações de design incluem:
Além da documentação sobre os escalões de mensagens Premium e Standard do Service Bus, as seguintes funcionalidades só estão disponíveis na Unidade de Manutenção de Stock Premium (SKU):
- Recursos dedicados.
- Integração de rede virtual: limita as redes que podem ligar à instância do Service Bus. Requer que os Pontos Finais de Serviço sejam ativados na sub-rede. Existem serviços Microsoft fidedignos que não são suportados ao implementar Redes Virtuais (por exemplo, integração com o Event Grid). Para obter mais informações, veja Permitir acesso ao espaço de nomes Azure Service Bus a partir de redes virtuais específicas.
- Pontos finais privados.
-
Filtragem/Firewall de IP: restrinja as ligações apenas a endereços definidos
IPv4
ouIPv4
intervalos de endereços. - Zonas de disponibilidade: fornece disponibilidade melhorada ao distribuir réplicas por zonas de disponibilidade numa região sem custos adicionais.
- Integração do Event Grid: tipos de eventos disponíveis.
- Dimensionar unidades de mensagens.
- Recuperação Após Desastre Geográfica (espaço de nomes emparelhado).
- CMK (Chave Gerida pelo Cliente): Azure Service Bus encripta dados inativos e desencripta-os automaticamente quando acedidos, mas os clientes também podem trazer a sua própria chave gerida pelo cliente.
Ao implementar o Service Bus com recuperação após desastre geográfica e em zonas de disponibilidade, a Operação de Nível de Serviço (SLO) aumenta significativamente, mas não altera o SLA de tempo de atividade.
Lista de Verificação
Configurou Azure Service Bus tendo em conta a fiabilidade?
- Avalie os benefícios do escalão Premium do Azure Service Bus.
- Certifique-se de que as Exceções de Mensagens do Service Bus são processadas corretamente.
- Ligue-se ao Service Bus com o Protocolo AMQP (Advanced Messaging Queue Protocol) e utilize Pontos Finais de Serviço ou Pontos Finais Privados sempre que possível.
- Reveja as Melhores Práticas para melhorar o desempenho com as Mensagens do Service Bus.
- Implemente a georreplicação no lado do remetente e do recetor para proteger contra falhas e desastres.
- Configurar Georresfero.
- Se precisar de mensagens críticas para a missão com filas e tópicos, recomenda-se o Service Bus Premium com o Geo-Disaster Recovery.
- Configure a Redundância entre Zonas no espaço de nomes do Service Bus (disponível apenas com o escalão Premium).
- Implemente a elevada disponibilidade para o espaço de nomes do Service Bus.
- Certifique-se de que as mensagens relacionadas são entregues por ordem garantida.
- Avalie diferentes funcionalidades do Java Messaging Service (JMS) através da API JMS.
- Utilize pacotes Nuget .NET para comunicar com entidades de mensagens do Service Bus.
- Implementar resiliência para processamento de falhas transitórias ao enviar ou receber mensagens.
- Implementar o dimensionamento automático de unidades de mensagens.
Recomendações de configuração
Considere as seguintes recomendações para otimizar a fiabilidade ao configurar Azure Service Bus:
Recomendação | Description |
---|---|
Avalie os benefícios do escalão Premium do Azure Service Bus. | Considere migrar para o escalão Premium do Service Bus para tirar partido da indisponibilidade suportada pela plataforma e da proteção contra desastres. |
Ligue-se ao Service Bus com o protocolo AMQP e utilize Pontos Finais de Serviço ou Pontos Finais Privados sempre que possível. | Esta recomendação mantém o tráfego no Azure Backbone.
Nota: o protocolo de ligação predefinido para Microsoft.Azure.ServiceBus e Windows.Azure.ServiceBus espaços de nomes é AMQP . |
Implemente a georreplicação no lado do remetente e do recetor para proteger contra falhas e desastres. | O escalão Standard suporta apenas a implementação da georredundância do lado do remetente e do recetor. Uma falha ou desastre numa Região do Azure pode causar um período de indisponibilidade para a sua solução. |
Configurar Georresfero. |
-
Ativo/Ativo - Ativo/Passivo - Espaço de Nomes Emparelhado (Ativo/Passivo) - Nota: a região secundária deve ser, de preferência, uma região emparelhada do Azure. |
Se precisar de mensagens críticas para a missão com filas e tópicos, recomenda-se o Service Bus Premium com o Geo-Disaster Recovery. | Escolher o padrão depende dos requisitos empresariais e do objetivo de tempo de recuperação (RTO). |
Configure a Redundância entre Zonas no espaço de nomes do Service Bus (disponível apenas com o escalão Premium). | A Redundância entre Zonas inclui três cópias do arquivo de mensagens. Uma zona é atribuída como o arquivo de mensagens principal e as outras zonas são alocadas como secundárias. Se a zona primária ficar indisponível, uma secundária é promovida para a primária sem tempo de inatividade percetível. Zonas de Disponibilidade estão disponíveis num subconjunto de Regiões do Azure com novas regiões adicionadas regularmente. |
Implemente a elevada disponibilidade para o espaço de nomes do Service Bus. | O escalão Premium suporta recuperação após desastre geográfica e replicação ao nível do espaço de nomes. Neste nível, o escalão Premium fornece elevada disponibilidade para a recuperação após desastre de metadados com espaços de nomes de recuperação após desastre primários e secundários. |
Certifique-se de que as mensagens relacionadas são entregues por ordem garantida. | Tenha em atenção o requisito para definir uma Chave de Partição, ID da Sessão ou ID da Mensagem em cada mensagem para garantir que as mensagens relacionadas são enviadas para a mesma partição na entidade de mensagens. |
Avalie as diferentes funcionalidades do JMS através da API JMS. | As funcionalidades disponíveis através da API JMS 2.0 (e do respetivo Software Development Kit (SDK)) não são as mesmas que as funcionalidades disponíveis através do SDK nativo. Por exemplo, as Sessões do Service Bus não estão disponíveis no JMS. |
Implementar resiliência para processamento de falhas transitórias ao enviar ou receber mensagens. | É essencial implementar o processamento de falhas transitórios adequado e o processamento de erros para operações de envio e receção para manter o débito e evitar a perda de mensagens. |
Implemente o dimensionamento automático de unidades de mensagens para garantir que tem recursos suficientes disponíveis para as suas cargas de trabalho. |
Artefactos de origem
Para identificar instâncias premium do Service Bus que não estão a utilizar pontos finais privados, utilize a seguinte consulta:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier == 'Premium' and isempty(properties.privateEndpointConnections)
Para identificar instâncias do Service Bus que não estão no escalão premium, utilize a seguinte consulta:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier != 'Premium'
Para identificar instâncias premium do Service Bus que não têm redundância entre zonas, utilize a seguinte consulta:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier == 'Premium' and properties.zoneRedundant == 'false'