SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
Apache Camel 
na vida real 
Rodrigo Stefani Domingues 
25/Setembro/14
Quem sou eu? 
● Trabalho com Java há 8 anos 
● Arquiteto de Software na CI&T 
● Nerd 
● Recentemente mineiro.
Bom, vamos lá! 
Integrações
Como o cliente vê...
Como o gestor vê...
Como realmente é ...
Tá bom, como podemos 
melhorar?
EIP
Apache Camel - Mensagem
Apache Camel - Endpoint 
Consumer 
Producer
Agora vamos colocar 
Spring!!!
Tá bom, como isso vai pro 
servidor?
Como ele nos ajudou?
Caso - Camel Mina 
● O que se passa: 
○ Aplicação em testes de stress apresenta Out Of 
Memory 
● Como fizemos 
○ Camel Mina tem problema de memory leak 
○ alteramos de Camel Mina para Camel Mina 2 
(utiliza Apache Mina 2)
Caso - Monitoramento 
● O que se passa: 
○ Cliente precisa de monitoramento mais detalhado 
● Como fizemos 
○ Criamos rota para montagem dos tickets de monitoramento 
○ Utilização do Padrão WireTap
Caso - Troca tecnologica 
● O que se passa: 
○ Integração com módulo foi definido como REST 
○ Sistema externo precisa utilizar, porém via JMS 
● Como fizemos 
○ Para nosso sistema : 
■ to(cxfrs:/bean/interfaceRest) 
→ 
to(jms:nomeDaFila) 
○ Para o sistema que demandou: 
■ to(jms:nomeDaFila?replyTo=FilaDeResposta)
Caso - Acordado no meio da noite 
● O que se passa: 
○ Aplicação em produção thread stuck 
● O que acontecia: 
○ Aplicação de monitoramento, não retirava 
mensagens da fila 
● O que fizemos: 
○ Pedimos pra arrumar a aplicação remota, claro! 
○ Enquanto isso: activemq:fila → file:/dev/null
Nem tudo são flores ...
Por que me apaixonei?!
● Tempo de resposta < 1s 
● 600 TPS por instancia 
● 6 instancias em produção 
● 12.960.000 por hora 
● 311.040.000 por dia
Com isso ...
Dúvidas?
THANKS 
FOR 
BEING 
HERE!

Mais conteúdo relacionado

Semelhante a [Polis Hyperlink ] Apache Camel na vida real

Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8RogerMasters
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloudPET Computação
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosEmbarcados
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Fabiano Weimar
 
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...Gleicon Moraes
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 
Planejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e FerramentasPlanejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e FerramentasRodrigo Campos
 
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningEiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningDevCamp Campinas
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaHenrique Lima
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentasluanrjesus
 
Como lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLComo lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLDiego Santos
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLTDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLAndré Curvello
 
Planejamento (e recuperação) de Desastres por Rodrigo Campos
Planejamento (e recuperação) de Desastres por Rodrigo CamposPlanejamento (e recuperação) de Desastres por Rodrigo Campos
Planejamento (e recuperação) de Desastres por Rodrigo CamposJoao Galdino Mello de Souza
 
A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampGeorge Guimarães
 

Semelhante a [Polis Hyperlink ] Apache Camel na vida real (20)

Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8
 
Putting a-heat-with-thermostat
Putting a-heat-with-thermostatPutting a-heat-with-thermostat
Putting a-heat-with-thermostat
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloud
 
Entendendo os Porquês do seu servidor
Entendendo os Porquês do seu servidorEntendendo os Porquês do seu servidor
Entendendo os Porquês do seu servidor
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Planejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e FerramentasPlanejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e Ferramentas
 
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningEiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentas
 
Como lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLComo lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQL
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLTDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGL
 
Planejamento (e recuperação) de Desastres por Rodrigo Campos
Planejamento (e recuperação) de Desastres por Rodrigo CamposPlanejamento (e recuperação) de Desastres por Rodrigo Campos
Planejamento (e recuperação) de Desastres por Rodrigo Campos
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Palestra Java 8 - V Boot
Palestra Java 8 - V BootPalestra Java 8 - V Boot
Palestra Java 8 - V Boot
 
A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCamp
 

Mais de Rodrigo Stefani Domingues

[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructure[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructureRodrigo Stefani Domingues
 
[TDC - Testes] Estratégia de automação dos testes em microserviços
[TDC - Testes] Estratégia de automação dos testes em microserviços [TDC - Testes] Estratégia de automação dos testes em microserviços
[TDC - Testes] Estratégia de automação dos testes em microserviços Rodrigo Stefani Domingues
 
Quebrando o monolito com microserviços - TDC 2017
Quebrando o monolito com microserviços - TDC 2017Quebrando o monolito com microserviços - TDC 2017
Quebrando o monolito com microserviços - TDC 2017Rodrigo Stefani Domingues
 
[Devcamp] usando programação funcional agora!
[Devcamp] usando programação funcional agora![Devcamp] usando programação funcional agora!
[Devcamp] usando programação funcional agora!Rodrigo Stefani Domingues
 

Mais de Rodrigo Stefani Domingues (6)

[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructure[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructure
 
[TDC - Testes] Estratégia de automação dos testes em microserviços
[TDC - Testes] Estratégia de automação dos testes em microserviços [TDC - Testes] Estratégia de automação dos testes em microserviços
[TDC - Testes] Estratégia de automação dos testes em microserviços
 
[TDC-Arquitetura Java] Pastoreando Gatos
[TDC-Arquitetura Java] Pastoreando Gatos[TDC-Arquitetura Java] Pastoreando Gatos
[TDC-Arquitetura Java] Pastoreando Gatos
 
Quebrando o monolito com microserviços - TDC 2017
Quebrando o monolito com microserviços - TDC 2017Quebrando o monolito com microserviços - TDC 2017
Quebrando o monolito com microserviços - TDC 2017
 
[qCon Rio 2015] Arquitetura Incremental
[qCon Rio 2015] Arquitetura Incremental[qCon Rio 2015] Arquitetura Incremental
[qCon Rio 2015] Arquitetura Incremental
 
[Devcamp] usando programação funcional agora!
[Devcamp] usando programação funcional agora![Devcamp] usando programação funcional agora!
[Devcamp] usando programação funcional agora!
 

[Polis Hyperlink ] Apache Camel na vida real

  • 1.
  • 2. Apache Camel na vida real Rodrigo Stefani Domingues 25/Setembro/14
  • 3. Quem sou eu? ● Trabalho com Java há 8 anos ● Arquiteto de Software na CI&T ● Nerd ● Recentemente mineiro.
  • 4. Bom, vamos lá! Integrações
  • 5. Como o cliente vê...
  • 6. Como o gestor vê...
  • 8. Tá bom, como podemos melhorar?
  • 9. EIP
  • 10.
  • 11.
  • 12. Apache Camel - Mensagem
  • 13. Apache Camel - Endpoint Consumer Producer
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Agora vamos colocar Spring!!!
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Tá bom, como isso vai pro servidor?
  • 34.
  • 35. Como ele nos ajudou?
  • 36. Caso - Camel Mina ● O que se passa: ○ Aplicação em testes de stress apresenta Out Of Memory ● Como fizemos ○ Camel Mina tem problema de memory leak ○ alteramos de Camel Mina para Camel Mina 2 (utiliza Apache Mina 2)
  • 37. Caso - Monitoramento ● O que se passa: ○ Cliente precisa de monitoramento mais detalhado ● Como fizemos ○ Criamos rota para montagem dos tickets de monitoramento ○ Utilização do Padrão WireTap
  • 38. Caso - Troca tecnologica ● O que se passa: ○ Integração com módulo foi definido como REST ○ Sistema externo precisa utilizar, porém via JMS ● Como fizemos ○ Para nosso sistema : ■ to(cxfrs:/bean/interfaceRest) → to(jms:nomeDaFila) ○ Para o sistema que demandou: ■ to(jms:nomeDaFila?replyTo=FilaDeResposta)
  • 39. Caso - Acordado no meio da noite ● O que se passa: ○ Aplicação em produção thread stuck ● O que acontecia: ○ Aplicação de monitoramento, não retirava mensagens da fila ● O que fizemos: ○ Pedimos pra arrumar a aplicação remota, claro! ○ Enquanto isso: activemq:fila → file:/dev/null
  • 40. Nem tudo são flores ...
  • 41.
  • 42.
  • 43. Por que me apaixonei?!
  • 44.
  • 45. ● Tempo de resposta < 1s ● 600 TPS por instancia ● 6 instancias em produção ● 12.960.000 por hora ● 311.040.000 por dia
  • 46.
  • 47.
  • 49.