O RabbitMQ permite a publicação de mensagens em um broker RabbitMQ.

Dê uma olhada nos parâmetros de configuração do componente:

  • Account: credencial utilizada para autenticação no RabbitMQ.
  • Hostname: nome do host que executa o RabbitMQ.
  • Port: porta de conexão do RabbitMQ (padrão: 5672).
  • Connection Timeout: tempo máximo para conexão ao RabbitMQ.
  • Virtual Host: nome do grupo lógico dentro do RabbitMQ ao qual se deseja conectar (padrão /).
  • Exchange Name: nome do exchange definido no RabbitMQ ao qual se deseja enviar mensagens.
  • Binary Message: se a opção estiver ativada, a mensagem será considerada binária e o campo Message Body deverá informar uma string contendo a representação base64 do conjunto de bytes a enviar; do contrário, a mensagem será considerada como texto.
  • Message Body: conteúdo da mensagem a ser enviada.
  • Routing Key: string representando a chave de relacionamento entre o Exchange e a(s) Fila(s).
  • Headers: conjunto de entradas "chave": "valor" contendo cabeçalhos que serão enviados na mensagem (campo opcional).
  • Message Type: string representando o tipo de mensagem (campo opcional).
  • Message Content Type: string representando o tipo de conteúdo da mensagem (ex.: application/json) (campo opcional).
  • Message Content Encoding: string representando a codificação do conteúdo (ex.: UTF-8) (campo opcional).
  • Priority: número indicando a prioridade da mensagem (campo opcional)
  • Correlation ID: string representando o ID de correlação da mensagem (campo opcional).
  • Message ID: string representando o ID da mensagem (campo opcional).
  • Delivery Mode: se "Persistent Message", então a mensagem é enviada com a flag persistente e o broker tentará mantê-la em disco assim que possível; se "Transient Message", então o broker tentará manter a mensagem em memória.
  • Reply To: string representando o endereço de retorno da mensagem (campo opcional).
  • Message Expiration: número representando o tempo de duração da mensagem em fila (também conhecido como TTL) (campo opcional).
  • Message Timestamp: número representando o timestamp da mensagem (campo opcional).
  • Application Name: string representando o nome da aplicação (campo opcional).
  • Fail On Error: se a opção estiver ativada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade sucesso.
  • Wait for a Publish Acknowledgement: se a opção estiver ativada, o componente aguardará por uma confirmação de publicação da mensagem; do contrário, o componente enviará a mensagem e não aguardará confirmação.
  • Publisher Acknowledgement Timeout: tempo máximo que o componente aguardará por uma confirmação de publicação da mensagem.
  • Mandatory Message: se a opção estiver ativada, então a mensagem é marcada como obrigatória e um erro será lançado caso ela não possa ser roteada; do contrário, então nenhuma verificação de roteamento será feita (é necessário que a opção "Wait for a Publish Acknowledgement" seja habilitada).

IMPORTANTE: todos os parâmetros de configuração opcionais não serão definidos na mensagem caso os seus valores sejam deixados em branco.

Exemplo de resposta de requisição ao RabbitMQ

<MESMA MENSAGEM QUE FOI INFORMADA NA ENTRADA>

IMPORTANTE: o RabbitMQ não altera a mensagem apresentada na sua entrada, exceto em caso de erro.

Exemplo de resposta de requisição ao RabbitMQ contendo erro

{
"success": false,
"message": "Could not publish message to RabbitMQ due to an error",
"error": "java.net.SocketTimeoutException: connect timed out"
}

  • success: “false” quando a operação falha
  • message: mensagem sobre o erro
  • exception: informação sobre o tipo de erro ocorrido

Fluxo de Mensagens

Entrada

O componente aceita qualquer mensagem de entrada, podendo utilizá-la por meio de Double Braces.

Saída

  • sem erro
<A MESMA MENSAGEM INFORMADA NA ENTRADA>

  • com erro
{
"success": false,
"message": "Could not publish message to RabbitMQ due to an error",
"error": "java.net.SocketTimeoutException: connect timed out"
}

Encontrou sua resposta?