Criando uma arquitetura escalável para processamento de arquivos com micro serviços e spring...

Post on 22-Jan-2018

612 views 2 download

Transcript of Criando uma arquitetura escalável para processamento de arquivos com micro serviços e spring...

Globalcode – Open4education

Criando uma arquitetura escalável

para processamento de arquivos

com micro serviços e Spring Boot

Emmanuel Neri

@emmanuelnerii

Globalcode – Open4education

Emmanuel Neri

Mestre em Desenvolvimento de Tecnologia

Desenvolvedor desde 2010

Atualmente dev na Navita

Globalcode – Open4education

Agenda

Cenário de processamento de arquivos

Decomposição do cenário em micro serviços

Aplicando os micro serviços com Spring Boot

Globalcode – Open4education

Cenário

Processamento de notas fiscais

Globalcode – Open4education

O problema

Globalcode – Open4education

Algumas possíveis soluções

Limitar o pool de threads?

Aumentar o hardware ou

replicar a instância?

Controlar o agendamento?

Separar em estruturas!

Globalcode – Open4education

Decomposição

Leitura Processamento Disponibilização

Leitura do XML

Backup

Parsear o XML

Validações

Armazenamento

Dispor os

dados

Globalcode – Open4education

Leitura do arquivo

busca os xmls a

cada x minutosInsere xml na fila

Insere xml na

base NoSQL

MongoDB

Pasta de arquivos ActiveMQ

Leitor

Globalcode – Open4education

Processamento do arquivo

Processador

ActiveMQInsere dados

processados no banco

relacional

Postgres

Fila envia xml para

processamento

Globalcode – Open4education

Disponibilização dos dados

Disponibilizador

MongoDB

Consulta arquivos

Postgres

Consulta Notas

Interface dos arquivos Interface das notas fiscais

Globalcode – Open4education

Solução de micro serviços

busca os xmls a

cada x minutosInsere xml na fila

Insere xml na

base NoSQL

Fila envia xml para

processamento

Insere dados

processados no

banco relacional

Consulta dadosConsulta arquivos

Globalcode – Open4education

Escalabilidade

Globalcode – Open4education

Tecnologias

Auto configuração

Servidores HTTP Embedded

Gerenciamento de dependências

Globalcode – Open4education

Tecnologias

Leitor

spring-boot-starter

spring-boot-starter-activemq

spring-boot-starter-data-mongodb

Globalcode – Open4education

Tecnologias

Processador

spring-boot-starter

spring-boot-starter-activemq

spring-boot-starter-data-jpa

spring-boot-starter-validation

Globalcode – Open4education

Tecnologias

Disponibilizador

spring-boot-starter

spring-boot-starter-web

spring-boot-starter-jdbc

mongo-java-driver

Globalcode – Open4education

http://github.com/emmanuelneri/solucao-processamento-arquivo

• emmanuelnerisouza@gmail.com

• @emmanuelnerii

• http://emmanuelnerisouza.wordpress.com

• github.com/emmanuelneri

Obrigado!!