Escolha uma solução de fila de mensagens

Concluído

As filas de armazenamento e as filas do Service Bus têm um conjunto de recursos ligeiramente diferente. Pode escolher uma ou ambas, dependendo das necessidades da sua solução em particular.

Ao determinar qual tecnologia de fila se encaixa no propósito de uma determinada solução, os arquitetos e desenvolvedores de soluções devem considerar essas recomendações.

Considere o uso de filas do Service Bus

Como arquiteto/desenvolvedor de soluções, você deve considerar o uso de filas do Service Bus quando:

  • Sua solução precisa receber mensagens sem ter que sondar a fila. Com o Service Bus, você pode obtê-lo usando uma operação de recebimento de sondagem longa usando os protocolos baseados em TCP suportados pelo Service Bus.
  • Sua solução requer que a fila forneça uma entrega garantida de pedidos FIFO (first-in-first-out).
  • Sua solução precisa oferecer suporte à deteção automática de duplicatas.
  • Você deseja que seu aplicativo processe mensagens como fluxos paralelos de longa execução (as mensagens são associadas a um fluxo usando a propriedade ID da sessão na mensagem). Nesse modelo, cada nó no aplicativo consumidor compete por fluxos, em vez de mensagens. Quando um fluxo é dado a um nó consumidor, o nó pode examinar o estado do estado do fluxo do aplicativo usando transações.
  • Sua solução requer comportamento transacional e atomicidade ao enviar ou receber várias mensagens de uma fila.
  • Seu aplicativo lida com mensagens que podem exceder 64 KB, mas provavelmente não se aproximará do limite de 256 KB ou 1 MB, dependendo da camada de serviço escolhida (embora as filas do Barramento de Serviço possam lidar com mensagens de até 100 MB).
  • Você lida com um requisito para fornecer um modelo de acesso baseado em função para as filas e diferentes direitos/permissões para remetentes e destinatários.

Considere o uso de filas de armazenamento

Como arquiteto/desenvolvedor de soluções, você deve considerar o uso de filas de armazenamento quando:

  • Seu aplicativo deve armazenar mais de 80 gigabytes de mensagens em uma fila.
  • Seu aplicativo deseja acompanhar o progresso do processamento de uma mensagem na fila. É útil se o trabalhador que processa uma mensagem falhar. Outro trabalhador pode então usar essas informações para continuar de onde o trabalhador anterior parou.
  • Você precisa de logs do lado do servidor de todas as transações executadas em suas filas.