Encadeando entidades do Barramento de Serviço com o encaminhamento automático

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

Observação

A camada básica do Barramento de Serviço não dá suporte ao recurso de encaminhamento automático. Para conferir as diferenças entre as camadas, confira Preços do Barramento de Serviço.

A entidade de destino deverá existir no momento da criação da entidade de origem. 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

Escalar horizontalmente um tópico individual

Você pode usar o encaminhamento automático para expandir um tópico individual. O Barramento de Serviço limita a quantidade de assinaturas em determinado tópico em 2.000. Você pode acomodar mais assinaturas criando tópicos de segundo nível. Mesmo se o número de assinaturas que você tem não estiver limitado pelo Barramento de Serviço, a adição de um segundo nível de tópicos poderá melhorar a taxa de transferência geral do tópico.

Diagrama de um cenário de encaminhamento automático mostrando uma mensagem processada por meio 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 dos destinatários

Você também pode usar o encaminhamento automático para separar os remetentes dos destinatários. Por exemplo, considere um sistema ERP (Enterprise Resource Planning) composto por três módulos: processamento de pedidos, gerenciamento de estoque e gerenciamento de relacionamentos com o cliente. Cada um desses módulos gera mensagens que são enfileiradas em um tópico correspondente. Brenda e Pedro são representantes de vendas interessados em todas as mensagens relacionadas aos seus clientes. Para receber essas mensagens, Brenda e Pedro criaram, cada um, uma fila e assinatura pessoais em cada um dos tópicos ERP que encaminham automaticamente todas as mensagens para suas filas.

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

Se Brenda entrar de férias, sua fila pessoal, em vez do tópico ERP, ficará cheia. Nesse cenário, como um representante de vendas não recebeu nenhuma mensagem, nenhum dos tópicos ERP atingirá a cota.

Observação

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

  • No lado de origem, o encaminhamento automático atua como uma operação de recebimento, portanto, a origem que tem o encaminhamento automático habilitado nunca está 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 habilitado na entidade de destino, a entidade será excluída automaticamente se estiver inativa pelo intervalo de ociosidade especificado. Recomenda-se não habilitar 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 para esse destino.

Considerações sobre o encaminhamento automático

  • O Barramento de Serviço não permite a criação de um receptor de mensagem em uma entidade de origem com o encaminhamento automático habilitado.
  • Se a entidade de destino tiver acumulado mensagens demais 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 habilitada novamente). Essas mensagens continuam ativas na fila de mensagens mortas, portanto, você deve receber e processá-las explicitamente a partir da fila de mensagens mortas.
  • Ao encadear tópicos individuais a fim de obter um tópico composto com diversas assinaturas, recomendamos que você tenha uma quantidade moderada de assinaturas no tópico de primeiro nível e diversas assinaturas nos tópicos de segundo nível. Por exemplo, um tópico de primeiro nível com 20 assinaturas, cada uma delas encadeada com um tópico de segundo nível com 200 assinaturas, permite uma taxa de transferência superior do que um tópico de primeiro nível com 200 assinaturas, cada uma delas encadeada com um tópico de segundo nível com 20 assinaturas.
  • O Barramento de Serviço cobra uma operação por cada mensagem encaminhada. Por exemplo, o envio de uma mensagem a um tópico com 20 assinaturas, cada uma delas configurada para encaminhar automaticamente mensagens para outra fila ou outro tópico, receberá uma cobrança por 21 operações, caso todas as assinaturas de primeiro nível recebam uma cópia da mensagem.
  • Para criar uma assinatura encadeada a outra fila ou outro tópico, o criador da assinatura deverá ter permissões para Gerenciar tanto na entidade de origem quanto na entidade de destino. O envio de mensagens para o tópico de origem exige apenas permissões para Enviar no tópico de origem.
  • Não crie uma cadeia que exceda quatro saltos. As mensagens que excederem quatro saltos são mensagens mortas. A contagem de saltos de uma mensagem é incrementada quando uma mensagem é enviada 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 enviar por meio de, em que uma mensagem é enviada por meio de uma fila de transferência.
  • O encaminhamento automático não é compatível com filas ou assinaturas habilitadas para sessão.
  • A fila de origem tenta encaminhar as mensagens para a entidade de destino na mesma ordem em que foram recebidas, mas o destino pode ser um tópico que não oferece suporte à ordenação. Se a entidade de origem ou de destino for uma entidade particionada, a ordem não será garantida.

Próximas etapas

Para saber como habilitar ou desabilitar o encaminhamento automático por diversos meios (como portal do Azure, PowerShell, CLI, modelo de gerenciamento de recursos do Azure etc.), confira Habilitar encaminhamento automático para filas e assinaturas.