RabbitMQ

Descubra mais sobre o conector 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 conector. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

ParâmetroDescriçãoValor padrãoTipo de dado

SSL/TLS

Ativa o método de autenticação SSL/TLS ao se conectar a um servidor RabbitMQ.

False

Booleano

Account

Conta do tipo Basic necessária para se autenticar utilizando o método basic.

Essa opção só está disponível se o parâmetro SSL/TLS for desativado.

N/A

Account

Key Store

Conta do tipo Certificate-chain (no formato PEM) contendo os certificados necessários do cliente para se autenticar utilizando o método SSL/TLS.

Essa opção só está disponível se o parâmetro SSL/TLS for ativado.

N/A

Account

Trust Store

Conta do tipo Certificate-chain (no formato PEM) contendo o trust material necessário para se autenticar utilizando o método SSL/TLS.

Essa opção só está disponível se o parâmetro SSL/TLS for ativado.

N/A

Account

Hostname Verification

Se ativado, será verificado se o certificado do servidor foi emitido para o hostname ao qual está sendo feita a conexão.

Essa opção só está disponível se o parâmetro SSL/TLS for ativado.

False

Booleano

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 conector aguardará por uma confirmação de publicação da mensagem; do contrário, o conector enviará a mensagem e não aguardará confirmação.

False

Booleano

Publisher Acknowledgement Timeout

Tempo máximo que o conector 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

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>

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

Atualizado