Implementações nativas do RabbitMQ
A plataforma Devprime adota uma abordagem cloud native com suporte a várias plataformas de stream e integração nativa com o RabbitMQ, um software de mensagens open source que opera com base no protocolo Advanced Message Queuing Protocol (AMQP). Você pode utilizar comandos específicos da plataforma para atender aos critérios da sua estratégia de arquitetura.
A plataforma Devprime suporta os modelos de exchange padrão do RabbitMQ por meio de métodos nativos que acessam os recursos específicos da plataforma, de acordo com o tipo de exchange desejado (Direct, Fanout, Topic, Headers).
| Modelo de Exchange |
Resumo |
| Direct |
Roteia mensagens para as filas cujas chaves de roteamento (routing keys) correspondem exatamente à chave especificada na mensagem. Ideal para cenários onde há uma correspondência exata entre a chave de roteamento e as filas. |
| Fanout |
Distribui mensagens para todas as filas ligadas à exchange, sem considerar a chave de roteamento. Usado em cenários de broadcast, onde todas as filas conectadas devem receber a mensagem. |
| Topic |
Roteia mensagens para uma ou mais filas baseadas em padrões de chaves de roteamento. Permite o uso de curingas (* e #), sendo útil em cenários onde há necessidade de filtragem ou roteamento complexo baseado em padrões. |
| Headers |
Roteia mensagens com base nos headers das mensagens em vez de chaves de roteamento. As mensagens são entregues às filas que satisfazem as condições definidas nos headers. É mais flexível, mas menos eficiente que o modelo Direct ou Topic. |
A tabela abaixo apresenta um resumo dos métodos disponíveis no adaptador de Stream da plataforma Devprime e os recursos oferecidos, com o objetivo de simplificar a utilização do RabbitMQ. Explore cada método e as diversas implementações disponíveis para habilitar a melhor experiência conforme o seu cenário de projeto.
Considerações
- Código: Acesse o repositório Devprime Stream no Github da Devprime.
- Namespace: “Os métodos que utilizam parâmetros fazem uso do namespace
DevPrime.Stack.Foundation.Stream.”
- Implementações Padrões: São genéricas e garantem compatibilidade com arquiteturas orientadas a eventos e portabilidade entre diferentes plataformas de stream. Isso significa que você pode mudar de uma plataforma para outra sem precisar alterar seu código.
- Implementações Nativas do RabbitMQ: São específicas para o RabbitMQ e são destinadas a casos de uso particulares. Se você mudar para outra plataforma de stream, precisará ajustar seu código para usar métodos padrão ou os métodos específicos da nova plataforma.
O método AddExchangeRabbitMQ da plataforma Devprime é utilizado para criar uma nova exchange no RabbitMQ. Este método oferece suporte para diversos tipos de exchange, incluindo Direct, Fanout, Topic e Headers, permitindo uma configuração flexível do roteamento de mensagens. Além disso, permite a configuração personalizada de propriedades da exchange através da classe CustomExchangeProperties.
O método AddQueueRabbitMQ da plataforma Devprime é utilizado para criar uma nova fila no RabbitMQ. Este método permite definir propriedades personalizadas para a fila, oferecendo flexibilidade na configuração.
O método AddBindingExchangeQueueRabbitMQ da plataforma Devprime é utilizado para criar uma nova ligação entre uma exchange e uma fila no RabbitMQ. Este método permite configurar o tipo de exchange, a chave de roteamento e argumentos adicionais para a ligação.
O método AddSubscribeRabbitMQ da plataforma Devprime é utilizado para assinar uma fila em uma exchange no RabbitMQ. Este método cria uma assinatura que permite que a fila receba mensagens da exchange, com base no tipo de exchange e na chave de roteamento fornecida.
O método RemoveQueueRabbitMQ da plataforma Devprime é utilizado para remover uma fila existente no RabbitMQ. Este método permite excluir uma fila específica, liberando recursos e garantindo que mensagens não sejam mais roteadas para a fila removida.
O método RemoveExchangeRabbitMQ da plataforma Devprime é utilizado para remover uma exchange existente no RabbitMQ. Este método exclui a exchange especificada, liberando recursos e garantindo que mensagens não sejam mais roteadas através da exchange removida.
RO método RemoveSubscribeRabbitMQ da plataforma Devprime é utilizado para cancelar a assinatura de uma fila em uma exchange no RabbitMQ. Este método remove a ligação existente entre a fila e a exchange, interrompendo o recebimento de mensagens da exchange para a fila.
O método PublishRabbitMQ da plataforma Devprime é utilizado para enviar mensagens para uma exchange no RabbitMQ. Este método permite especificar o tipo de exchange, a chave de roteamento e as propriedades da mensagem, garantindo que as mensagens sejam roteadas corretamente para as filas associadas.
Última modificação September 10, 2024 (0cba19be)