State

O Adapter de State é responsável pela persistência em banco de dados, cache e armazenamento na plataforma Devprime. O Adapter State pode ser personalizado com uma variedade de opções, incluindo MongoDB, SQL Server, MySQL, PostgreSQL, ElasticSearch, Oracle, Redis e outros parâmetros de armazenamento, como Azure Store, AWS S3, Google Cloud Storage, e muitos outros.

Configurando o State com o MongoDB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
  "DevPrime_State": [
    {
      "enable": "true",
      "alias": "State1",
      "type": "db",
      "dbtype": "mongodb",
      "connection": "mongodb://mongoadmin:LltF8Nx*yo@localhost:27017",
      "timeout": "5",
      "retry": "2",
      "dbname": "ms-order",
      "isssl": "true",
      "numberofattempts": "4",
      "durationofbreak": "45"
    }
  ],

Na tabela abaixo, é possível acompanhar um resumo dos principais parâmetros de configuração.

State
enable Habilita o adapter de State (True/False)
alias Define um nome único para identificar o serviço
type Define o tipo de State (DB
dbtype Define o serviço de banco de dados (MongoDB
dbname Nome do Database / Collection
connection Define a configuração da conexão de acesso
timeout Configura o timeout padrão para falhar
retry Configura a quantidade de retentativas
isssl Habilita uma conexão segura (True/False)
numberofattempts Define o número de tentativas
durationofbreak Define a duração do Circuit-Break

O Adapter de State suporta várias persistências de dados

O Adapter de State da plataforma Devprime oferece suporte para mais de um serviço de State simultaneamente, para atender a cenários específicos onde seja necessário ter tanto o MongoDB quanto o Redis no mesmo microsserviço e um Storage.

Nesse tipo de implementação, é necessário que cada serviço tenha o seu próprio Alias.

 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
33
   "Devprime_State": [
    {
      "enable": "true",
      "alias": "State1",
      "type": "db",
      "dbtype": "mongodb",
      "connection": "mongodb://mongoadmin:LltF8Nx*yo@localhost:27017",
      "timeout": "5",
      "retry": "2",
      "dbname": "ms-order",
      "isssl": "true",
      "numberofattempts": "4",
      "durationofbreak": "45"
    },
    {
      "enable": "true",
      "alias": "State2",
      "dbtype": "redis",
      "connection": "127.0.0.x:6379",
      "timeout": "5",
      "retry": "2",
      "durationofbreak": "45"
    },
    {
      "enable": "true",
      "alias": "State3",
      "type": "storage",
      "storagetype": "file",        
      "timeout": "5",
      "retry": "2",
      "durationofbreak": "45"
    }
  ],

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

1
2
3
[INF][State][Type "MongoDB"][Alias "State1"]["Database"]["Enable"]
[INF][State][Type "Redis"][Alias "State2"]["Database"]["Enable"]
[INF][State][Type "File"][Alias "State3"]["Storage"]["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
 9
10
11
- name: devprime_state1
  value: "enable=true|||alias=State1|||type=db|||dbtype=mongodb|||
  connection=mongodb://mongoadmin:LltF8Nx*yo@mongodb.default.svc:27017|||
  timeout=5|||retry=2|||dbname=ms-order|||isssl=true|||numberofattempts=4|||
  durationofbreak=45" 
- name: devprime_state2
  value: "enable=true|||alias=State2|||dbtype=redis|||
  connection=127.0.0.x:6379|||timeout=5|||retry=2|||durationofbreak=45" 
- name: devprime_state3
  value: "enable=true|||alias=State3|||type=storage|||storagetype=file|||
  timeout=5|||retry=2|||durationofbreak=45"

Cache

A plataforma Devprime disponibiliza diversos parâmetros para a customização dos serviços de cache

DB

A plataforma Devprime disponibiliza diversos parâmetros para a customização do State.

Storage

Azure Storage, AWS Storage , Google Cloud Storage

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