akka 2.0 + mongodb - caso de sucesso no ecommerce turismo

21
Globalcode – Open4education Trilha – Scala Rodrigo Silva Rahman de Almeida Arquiteto JAVA www.jfive.com.br/blog r [email protected]

Upload: rodrigorahman

Post on 25-May-2015

570 views

Category:

Education


3 download

DESCRIPTION

Uma explicação completa do problema, do porque foi utilizado o Akka, tunning e a melhoria do processo de busca para o ecommerce turismo.

TRANSCRIPT

Page 1: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Trilha – ScalaRodrigo Silva Rahman de Almeida

Arquiteto JAVAwww.jfive.com.br/blog

[email protected]

Page 2: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Agenda

Problema a ser solucionado;

Solução;

AKKA;

Arquitetura;

Dados Interessantes.

Page 3: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Problema a ser solucionado

www.cvc.com.brUsuário 23/12/2012

Vou para Porto Seguro!

Nenhum pacote encontrado nessa

data.

Page 4: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Problema a ser solucionado

Desisto, não vou mais viajar !

Page 5: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Solução para o Problema

Fazer uma consulta mais inteligenteFazer uma busca por cidade e não mais por destino turistico

Fazer com que essa busca procure datas de sugestões evitando assim não trazer nenhum resultado para o cliente

Page 6: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Problemas

Tempo de resposta para uma consulta de um destino base 50 segundos.

Consultando por cidade teremos em média 30 destinos diferentes

Page 7: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Problemas

Tempo final 50 x 30 = 1500 (25 min)

Page 8: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Solução

A solução para executar essa consulta em um tempo viavel

Tunning nas querys

Paralelismo

Page 9: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Solução

Page 10: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Problemas dessa solução

ThreadsControle de locks

Alta Complexidade

Alto Risco

Solução seria encontrar um framework que abstraia essa complexidade e esse risco.

Page 11: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

AKKA 2.0

Framework 100% escala

Utiliza o conceito de atores da programação funcional

Vários algoritimos de distribuição de mensagens disponíveis

Abstrai a complexidade de utilização de threads e problemas de concorrência

Pode ser utilizado em um ambiente 100% JAVA

Page 12: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Arquitetura

Cache

Paralelismo

Page 13: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Arquitetura CacheSite

Consulta

MongoDB

Cache

Dados

Não Encontrado

Dispara a Consulta

Page 14: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Arquitetura DB

30’s

Site

Consulta

Destinos Datas

Consulta DB

MongoDB

MongoDB Cache

Page 15: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Arquitetura

Procurando o pacote que mais se adequa ao seu orçamento

Consulta

Destinos Datas

Consulta DB

Servidor

Page 16: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Arquitetura

Proximo Cliente que buscar para a mesma cidadeTrará o resultado em aproximadamente 200 ms

Com uma quantidade grande de opções de pacotes

Page 17: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Resultado

Busca muito mais rápida Resultado Pacotes Aumento de venda

Page 18: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Resultado

Cliente Chefe

Page 19: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Resultado

Você Salário

Page 20: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Dados Interessantes

Antes nossa consulta demorava em média 50 segundos para um destino

Atualmente essa consulta demora 18 segundos para 30 destinos

Fizemos um teste de carga e conseguimos executar 2000 usuários simultaneos com uma variação de destino e data e a média de execução foi de 28 segundos.

O uso da CPU ficou em 70% e as threads que o akka abriu chegou a um pico de 800 threads

Page 21: Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo

Globalcode – Open4education

Dúvidas