O que é o Azure Service Bus?
O Azure Service Bus é um serviço da Microsoft de Message Broker que trabalha com filas de mensagens e/ou com mensageria via pub/sub (publish & subscribe). Podemos utilizar esse mecanismo de troca de mensagens internas para fazer a comunicação entre aplicações independentes. É uma parte crucial quando trabalhamos com a arquitetura de microsserviços.
O Message Broker atua como um middleware, que faz o trabalho de validar, armazenar, rotear e entregar as mensagens aos seus destinos. Existem várias opções conhecidas no mercado, como o RabbitMQ, Amazon SQS, Redis, Kafka.
Um serviço de mensageria também é muito importante para assegurarmos que as mensagens são entregues a seus destinatários. Caso uma aplicação destino fique offline, as mensagens ficam no aguardo para serem consumidas. Conseguimos evitar duplicidades e as mensagens podem cair numa fila alternativa caso não sejam consumidas apropriadamente.
Mensagens por fila ou por tópicos?
O Azure Service Bus permite a configuração de entrega de mensagens por fila ou por tópicos.
Resumindo: por fila, as mensagens são lidas por um único consumidor, enquanto que por tópicos as mensagens são entregues ao serviço e podem ser lidas por qualquer consumidor que tenha feito a inscrição/assinatura desse tópico.
Diagrama de troca de mensagens por fila
Nesse diagrama podemos observar que o primeiro publicador envia uma mensagem para a fila chamada “abc”, e essa mensagem é consumida por apenas um consumidor.
Diagrama de troca de mensagens por tópico
No diagrama acima, o publicador envia uma mensagem para o tópico chamado “abc”, e as assinaturas configuradas atuam como filas independentes e são consumidas por consumidores distintos.
As assinaturas podem ser configuradas com alguns parâmetros para filtrar mensagens de acordo com alguma necessidade e caso as mensagens não sejam consumidas devidamente, podemos configurar uma fila de “mensagens mortas” (dead letter), e podemos configurar ações para essas mensagens.
Seja o primeiro a comentar