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"
}