Encadeamento de entidades do Service Bus com encaminhamento automático

O recurso de encaminhamento automático do Service Bus permite encadear uma fila ou assinatura para outra fila ou tópico que faça parte do mesmo namespace. Quando o encaminhamento automático está habilitado, o Service Bus remove automaticamente as mensagens que são colocadas na primeira fila ou assinatura (origem) e as coloca na segunda fila ou tópico (destino). Ainda é possível enviar uma mensagem diretamente para a entidade de destino.

Nota

A camada básica do Service Bus não oferece suporte ao recurso de encaminhamento automático. Para conhecer as diferenças entre camadas, consulte Preços do Service Bus.

A entidade de destino deve existir no momento em que a entidade de origem é criada. Se a entidade de destino não existir, o Barramento de Serviço retornará uma exceção quando solicitado a criar a entidade de origem.

Cenários

Dimensionar um tópico individual

Você pode usar o encaminhamento automático para dimensionar um tópico individual. O Service Bus limita o número de assinaturas em um determinado tópico a 2.000. Você pode acomodar mais assinaturas criando tópicos de segundo nível. Mesmo que você não esteja limitado pela limitação do Service Bus no número de assinaturas, adicionar um segundo nível de tópicos pode melhorar a taxa de transferência geral do seu tópico.

Diagrama de um cenário de encaminhamento automático mostrando uma mensagem processada através de um Tópico de Pedidos que pode ramificar para qualquer um dos três Tópicos de Pedidos de segundo nível.

Desacoplar remetentes de mensagens de destinatários

Você também pode usar o encaminhamento automático para separar remetentes de mensagens de destinatários. Por exemplo, considere um sistema de Enterprise Resource Planning (ERP) que consiste em três módulos: processamento de pedidos, gerenciamento de estoque e gerenciamento de relações com clientes. Cada um desses módulos gera mensagens que são enfileiradas em um tópico correspondente. Alice e Bob são representantes de vendas que estão interessados em todas as mensagens que se relacionam com seus clientes. Para receber essas mensagens, Alice e Bob criam uma fila pessoal e uma assinatura em cada um dos tópicos do ERP que encaminham automaticamente todas as mensagens para sua fila.

Diagrama de um cenário de encaminhamento automático mostrando três módulos de processamento enviando mensagens através de três tópicos correspondentes para duas filas separadas.

Se Alice vai de férias, a sua fila pessoal, em vez do tema do ERP, enche-se. Nesse cenário, como um representante de vendas não recebeu nenhuma mensagem, nenhum dos tópicos do ERP atingiu a cota.

Nota

Quando o encaminhamento automático é configurado, o valor para AutoDeleteOnIdle na entidade de origem é automaticamente definido como o valor máximo do tipo de dados.

  • No lado da fonte, o encaminhamento automático atua como uma operação de receção, de modo que a fonte que tem o encaminhamento automático ativado nunca é realmente "ociosa" e, portanto, não será excluída automaticamente.
  • O encaminhamento automático não faz alterações na entidade de destino. Se AutoDeleteOnIdle estiver habilitada na entidade de destino, a entidade será excluída automaticamente se estiver inativa para o intervalo ocioso especificado. Recomendamos que você não habilite AutoDeleteOnIdle na entidade de destino porque, se a entidade de destino for excluída, a entidade de origem verá continuamente exceções ao tentar encaminhar mensagens desse destino.

Considerações sobre encaminhamento automático

  • O Service Bus não permite a criação de um recetor de mensagens em uma entidade de origem com o encaminhamento automático habilitado.
  • Se a entidade de destino acumular muitas mensagens e exceder a cota, ou se a entidade de destino estiver desabilitada, a entidade de origem adicionará as mensagens à sua fila de mensagens mortas até que haja espaço no destino (ou a entidade seja reativada). Essas mensagens continuam a viver na fila de mensagens mortas, portanto, você deve recebê-las e processá-las explicitamente da fila de mensagens mortas.
  • Ao encadear tópicos individuais para obter um tópico composto com muitas assinaturas, é recomendável que você tenha um número moderado de assinaturas no tópico de primeiro nível e muitas assinaturas nos tópicos de segundo nível. Por exemplo, um tópico de primeiro nível com 20 assinaturas, cada uma delas encadeada a um tópico de segundo nível com 200 assinaturas, permite uma taxa de transferência maior do que um tópico de primeiro nível com 200 assinaturas, cada uma encadeada a um tópico de segundo nível com 20 assinaturas.
  • O Service Bus cobra uma operação para cada mensagem encaminhada. Por exemplo, enviar uma mensagem para um tópico com 20 assinaturas, cada uma delas configurada para encaminhar mensagens automaticamente para outra fila ou tópico, é cobrado como 21 operações se todas as assinaturas de primeiro nível receberem uma cópia da mensagem.
  • Para criar uma assinatura encadeada a outra fila ou tópico, o criador da assinatura deve ter permissões de Gerenciar na entidade de origem e na entidade de destino. O envio de mensagens para o tópico de origem requer apenas permissões de envio no tópico de origem.
  • Não crie uma cadeia que exceda quatro lúpulos. As mensagens que excedem quatro saltos são letras mortas. A contagem de saltos de uma mensagem é incrementada quando uma mensagem é encaminhada automaticamente de uma fila ou tópico para outra fila ou tópico. A contagem de saltos de uma mensagem também pode ser incrementada no cenário de envio via em que uma mensagem é enviada por meio de uma fila de transferência.
  • O encaminhamento automático não é suportado para filas ou assinaturas habilitadas para sessão.
  • A fila de origem tenta encaminhar mensagens para a entidade de destino na mesma ordem em que recebeu, mas o destino pode ser um tópico que não oferece suporte a pedidos. Se a entidade de origem ou de destino for uma entidade particionada, a ordem não será garantida.

Próximos passos

Para saber como habilitar ou desabilitar o encaminhamento automático de maneiras diferentes (portal do Azure, PowerShell, CLI, modelo de Gerenciamento de Recursos do Azure, etc.), consulte Habilitar o encaminhamento automático para filas e assinaturas.