Multistream

A plataforma Devprime, por meio do Adapter Stream, oferece a abordagem Multistream, permitindo a integração de mais de um serviço de Stream em um único microsserviço.

Ao adotar a estratégia Multistream por meio da configuração do Adapter de Stream, é possível ativar, por exemplo, o RabbitMQ e o Kafka ao mesmo tempo para atender a cenários específicos. Todos os eventos recebidos pelo Adapter de Stream são processados no método StreamEvents() oferecido pelo Adapter de Stream na plataforma Devprime.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 "Devprime_Stream": [
    {
      "Alias": "Stream1",
      "Enable": "true",
      "Default": "fakse",
      "StreamType": "RabbitMQ",
      "HostName": "Localhost",
      "User": "guest",
      "Password": "guest",
      "Port": "5672",
      "Exchange": "devprime",
      "ExchangeType": "direct",
      "Retry": "3",
      "Fallback": "State1",
      "Threads": "30",
      "Buffer": "5",
      "Subscribe": []
    },
    {
      "Alias": "Stream2",
      "Enable": "true",
      "Default": "true",
      "StreamType": "Kafka",
      "Hostname": "Localhost",
      "Port": "9092",
      "User": "",
      "Password": "",
      "Retry": "3",
      "Fallback": "State1",
      "Subscribe":[]
    }
  ],

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

1
2
[INF][Stream][Type "RabbitMQ"][Alias "Stream1"]["Enable"]
[INF][Stream][Type "Kafka"][Alias "Stream2"]["Enable"]

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
7
8
- name: devprime_stream1
  value: "alias=Stream1|||enable=true|||default=true|||streamtype=RabbitMQ|||
  hostname=rabbitmq.default.svc|||user=guest|||password=guest|||port=5672|||
  exchange=devprime|||exchangetype=direct|||retry=3|||fallback=State1|||
  threads=30|||buffer=1" 
- name: devprime_stream2
  value: "alias=Stream2|||enable=true|||default=false|||streamtype=Kafka|||
  hostname=kafka.default.svc|||port=9092|||retry=3|||fallback=State1"
Última modificação September 1, 2023 (072c5772)