RabbitMQ Trigger

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

O RabbitMQ Trigger é responsável pelo consumo das mensagens de 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).

O cliente RabbitMQ não permite a limitação do tamanho de mensagens. Caso mensagens muito grandes sejam enviadas, a infraestrutura de triggers da Digibee poderá recusá-las. Não aconselhamos o envio de mensagens grandes através de um barramento de mensagens.

Esse trigger possui 2 estratégias de acknowledge (confirmação de recebimento) de mensagens:

  • Acknowledge automático

A confirmação de cada mensagem recebida pelo trigger acontece de forma automática e imediata no recebimento e o broker entende que ela foi entregue. Por um lado, o acknowledge automático garante um grande desempenho, mas por outro não impede a perda da mensagem caso o pipeline associado não a processe ou a processe com falha.

  • Acknowledge manual

Cada mensagem recebida pelo trigger permanece em "unchecked", um estado de não confirmação, enquanto estiverem sendo processadas pelo pipeline. No acknowledge manual, o broker RabbitMQ entende que a mensagem está pendente e, caso haja qualquer problema na infraestrutura do trigger ou o pipeline responda com erro, a mensagem em questão pode ser reprocessada. O número de consumers configurados para o pipeline dita quantas mensagens podem ser processadas ao mesmo tempo. Para isso, o tamanho de prefetch do RabbitMQ é configurado com o mesmo valor de consumers do pipeline.

Consumers

A configuração de consumidores feita no momento de implantação de um pipeline impacta diretamente no throughput de recebimento e saída de mensagens quando o RabbitMQ Trigger é ativado. Caso o auto acknowledge esteja desabilitado, a preocupação com o número de consumidores se torna ainda mais importante. Isso acontece porque o número de mensagens simultâneas sendo processadas é igual ao número de consumidores configurados.

Declaração de filas, routing keys e exchanges

O RabbitMQ Trigger não declara parâmetros de configuração de filas, routing keys e exchanges no broker RabbitMQ. É esperado que toda a configuração já esteja feita para que o trigger possa consumir mensagens de filas.

Formato de mensagem na entrada do pipeline

Pipelines associados com o RabbitMQ Trigger recebem a seguinte mensagem como entrada:

{
  "body": <STRING message content; if binary, then Base64>,
  "properties": {
    "appId": <STRING application id>,
    "classId": <STRING class id>,
    "clusterId": <STRING cluster id>,
    "contentEncoding": <STRING content encoding>,
    "contentType": <STRING message content type>,
    "correlationId": <STRING correlation id>,
    "deliveryMode": <INT delivery mode>,
    "expiration": <STRING message expiration in ms>,
    "messageId": <STRING message id>,
    "priority": <INT message priority>,
    "replyTo": <STRING reply to queue>,
    "type": <STRING message type>,
    "userId": <STRING user id>,
    "timestamp": <LONG message timestamp>
  }
  "headers": {
    "header1": "value1", ...
  },
  "envelope": {
    "deliveryTag": <LONG message delivery tag>
    "exchange": <STRING exchange that processed the message>
    "routingKey": <STRING routing key used to route message>
  }
}

Last updated