RabbitMQ

Descubra mais sobre o componente RabbitMQ e saiba como utilizá-lo na Digibee Integration Platform.

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

Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

ParâmetroDescriçãoValor padrãoTipo de dado

Account

Credencial utilizada para autenticação no RabbitMQ. Contas suportadas: Basic.

N/A

String

Hostname

Nome do host que executa o RabbitMQ.

N/A

String

Port

Porta de conexão do RabbitMQ (padrão: 5672).

5672

Inteiro

Connection Timeout

Tempo máximo para conexão ao RabbitMQ.

60000

Inteiro

Virtual Host

Nome do grupo lógico dentro do RabbitMQ ao qual se deseja conectar.

/

String

Exchange Name (DB)

Nome do exchange definido no RabbitMQ ao qual se deseja enviar mensagens.

N/A

String

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.

False

Booleano

Message Body (DB)

Conteúdo da mensagem a ser enviada.

N/A

String

Routing Key

String representando a chave de relacionamento entre o Exchange e a(s) Fila(s).

N/A

String

Headers

Conjunto de entradas chave-valor (key-value) contendo cabeçalhos que serão enviados na mensagem (campo opcional).

N/A

Key-value

Message Type

String representando o tipo de mensagem (campo opcional).

N/A

String

Message Content Type

String representando o tipo de conteúdo da mensagem (ex.: application/json) (campo opcional).

N/A

String

Message Content Encoding

String representando a codificação do conteúdo (ex.: UTF-8) (campo opcional).

N/A

String

Priority

Número indicando a prioridade da mensagem (campo opcional).

N/A

Inteiro

Correlation ID

String representando o ID de correlação da mensagem (campo opcional).

N/A

String

Message ID

String representando o ID da mensagem (campo opcional).

N/A

String

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.

Persistent Message

String

Reply To

String representando o endereço de retorno da mensagem (campo opcional).

N/A

String

Message Expiration

Número representando o tempo de duração da mensagem em fila (também conhecido como TTL) (campo opcional).

N/A

Inteiro

Message Timestamp

Número representando o timestamp da mensagem (campo opcional).

N/A

Inteiro

Application Name

String representando o nome da aplicação (campo opcional).

N/A

String

Fail On Error

Se a opção estiver habilitada, 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 "success".

False

Booleano

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.

False

Booleano

Publisher Acknowledgement Timeout

Tempo máximo que o componente aguardará por uma confirmação de publicação da mensagem.

5000

Inteiro

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).

False

Booleano

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

RabbitMQ em Ação

Uma mensagem é sempre enviada através desse componente a partir do Exchange Name e do Routing Key. O exchange possui um bind com um tópico ou uma fila e direciona a mensagem a partir da routing key.

Enviando uma mensagem simples

Mensagem de entrada:

{
"message": "test"
}

Configurações:

  • Hostname: <RABBITMQ HOSTNAME>

  • Port: <PORT> (porta padrão: 5672)

  • Virtual Host: /

  • Exchange Name: <EXCHANGE NAME>

  • Binary Message: desabilitado

  • Message: {{ message.$ }}

  • Routing key: <ROUTING KEY>

  • Fail On Error: desabilitado

Resultado:

{
"message": "test"
}

Enviando uma mensagem binária simples

Mensagem de entrada:

{
"message": "ewoJIm1lc3NhZ2UiOiAidGVzdCIKfQo="
}

Configurações:

  • Hostname: <RABBITMQ HOSTNAME>

  • Port: <PORT> (porta padrão: 5672)

  • Virtual Host: /

  • Exchange Name: <EXCHANGE NAME>

  • Binary Message: habilitado

  • Message: {{ message.message }}

  • Routing key: <ROUTING KEY>

  • Fail On Error: desabilitado

Resultado:

{
"message": "ewoJIm1lc3NhZ2UiOiAidGVzdCIKfQo="
}

Enviando uma mensagem para uma fila e a resposta será devolvida para uma outra especificada (Direct Reply-To)

Mensagem de entrada:

{
"message": "test"
}

Configurações:

  • Hostname: <RABBITMQ HOSTNAME>

  • Port: <PORT> (porta padrão: 5672)

  • Virtual Host: /

  • Exchange Name: <EXCHANGE NAME>

  • Binary Message: desabilitado

  • Message: {{ message.$ }}

  • Routing key: <ROUTING KEY>

  • Reply To: <REPLY TO>

  • Fail On Error: desabilitado

Resultado:

{
"message": "test"
}

Last updated