CloudAMQP

A plataforma Devprime oferece suporte nativo ao CloudAMQP, que fornece uma abordagem SaaS do RabbitMQ, um software de mensagens de código aberto que opera com base nos protocolos Advanced Message Queuing Protocol (AMQP) e Streaming Text Oriented Messaging Protocol (MQTT).

As configurações do CloudAMQP seguem o mesmo modelo do o RabbitMQ com um ponto de atenção para o parametro HostName que já inclui a url e credenciais fornecidas na criação do serviço no CloudAMQP. Os parâmetros User / Password / Port não são necessários

Efetuando Subscribe em uma fila no RabbitMQ

O JSON abaixo demonstra a configuração padrão com as credenciais do RabbitMQ, a exchange utilizada, o Retry, o Fallback, as Threads e a opção ‘Subscribe" para receber eventos na fila ‘orderevents’ conforme a definição no item Queues.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
"DevPrime_Stream": [
    {
      "Enable": "true",
      "Alias": "Stream1",
      "Default": "true",
      "StreamType": "RabbitMQ",
      "HostName": "amqps://user:password@demo.rmq.cloudamqp.com/demo",
      "Exchange": "devprime",
      "ExchangeType": "direct",
      "Retry": "3",
      "Fallback": "State1",
      "Threads": "30",
      "Buffer": "1",
      "Subscribe": [
        {
          "Queues": "orderevents"
        }
      ]
    }
  ],

No exemplo abaixo, estamos detalhando as configurações padrões do Adapter e as configurações específicas do RabbitMQ.

Geral
Enable Habilita o adapter de Stream (True/False)
Alias Define um nome único para identificar o serviço
Default Define como padrão para o centário de ter mais de um Stream (True/False)
StreamType Define o tipo de Stream (RabbitMQ/Kafka)
HostName Configura a url/credencial fornecida pelo CloudAMQP
Exchange Configura a Exchage padrão do RabbitMQ
ExchangeType Configura o tipo de Exchange
Retry Configura a quantidade de retentativas
Fallback Configura um State para persitência automática em caso de falha
Threads Define o número coneções simulteas processando eventos
Buffer Define a quantidade de eventos obitidos por conexão
Subscribe Configura filas do RabbitMQ para leitura

Exemplo no log da aplicação com essa configuração:

1
2
[INF][ms-order][Stream][Type "RabbitMQ"][Alias "Stream1"]
["Enable"][Subscribe]["orderevents"][Parallel "30"][Buffer "1"]

Exemplo YAML com as configurações da aplicação:
Para exportar as configurações como variável de ambiente e utilizar no Kubernetes execute o comando no Devprime CLI:
dp export kubernetes

1
2
3
4
5
6
- name: devprime_stream1
    value: "alias=Stream1|||enable=true|||default=true|||streamtype=RabbitMQ|||
    hostname=amqps://user:password@demo.rmq.cloudamqp.com/demo|||
    exchange=devprime|||exchangetype=direct|||retry=3|||
    fallback=State1|||threads=30|||buffer=1|||
    subscribe=[queues=orderevents]"

Utilize os exemplos do RabbitMQ para explorar outras variações na configuração.

Última modificação September 1, 2023 (ab965929)