SkillAgentSearch skills...

DynamicDataSourceRouting

Exemplo de como utilizar Dynamic Data Source Routing com Java, Spring Boot e JPA.

Install / Use

/learn @jonathanmdr/DynamicDataSourceRouting

README

Dynamic Data Source Routing

CI CodeFactor

Exemplo de uma API REST desenvolvida em Java com Spring, o intuito é apresentar uma solução arquitetural para dimensionar operações de leitura com banco de dados, neste exemplo trabalharemos com duas bases de dados, uma base de dados principal e uma réplica. </br> </br> A ideia é fazer com que a aplicação direcione as transações definidas como READ_ONLY para a base de dados réplica e que as transações READ_WRITE sejam direcionadas para a base de dados principal. </br> </br> As imagens e configurações contidas no arquivo docker-compose.yaml são específicas para lidar com a replicação de dados. </br> </br> Esta arquitetura consiste em diminuir a concorrência entre transações da API com o banco de dados, isso nos permite alguns ganhos em ambientes de alta escala dado que podemos tranquilamente escalar horizontalmente mais nós de réplica quando necessário. </br> </br>

node node node

Arquitetura

node

Documentação

:information_source: Após inicializar a aplicação, acesse a documentação clicando neste link.

Inicializando as bases de dados

:warning: É necessário ter instalado docker e docker-compose.

Execute os comandos abaixo:

Inicializar:

make up

Parar:

make down

OpenTelemetry

O OpenTelemetry foi incluso no projeto utilizando a estratégia de coletores como agent.

Variáveis de ambiente:

OTEL_METRICS_EXPORTER=otlp
OTEL_EXPORTER_OTLP_METRICS_COMPRESSION=gzip
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://localhost:4318/v1/metrics
OTEL_TRACES_EXPORTER=otlp
OTEL_EXPORTER_OTLP_TRACES_COMPRESSION=gzip
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4318/v1/traces
OTEL_LOGS_EXPORTER=none
OTEL_SERVICE_NAME=billionaire-api

Argumentos de VM:

-javaagent:.otel/otel.jar
View on GitHub
GitHub Stars25
CategoryData
Updated2mo ago
Forks4

Languages

Java

Security Score

95/100

Audited on Jan 29, 2026

No findings