akka 2.0 + mongodb - caso de sucesso no ecommerce turismo
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
Globalcode – Open4education
Trilha – ScalaRodrigo Silva Rahman de Almeida
Arquiteto JAVAwww.jfive.com.br/blog
Globalcode – Open4education
Agenda
Problema a ser solucionado;
Solução;
AKKA;
Arquitetura;
Dados Interessantes.
Globalcode – Open4education
Problema a ser solucionado
www.cvc.com.brUsuário 23/12/2012
Vou para Porto Seguro!
Nenhum pacote encontrado nessa
data.
Globalcode – Open4education
Problema a ser solucionado
Desisto, não vou mais viajar !
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
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
Globalcode – Open4education
Problemas
Tempo final 50 x 30 = 1500 (25 min)
Globalcode – Open4education
Solução
A solução para executar essa consulta em um tempo viavel
Tunning nas querys
Paralelismo
Globalcode – Open4education
Solução
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.
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
Globalcode – Open4education
Arquitetura
Cache
Paralelismo
Globalcode – Open4education
Arquitetura CacheSite
Consulta
MongoDB
Cache
Dados
Não Encontrado
Dispara a Consulta
Globalcode – Open4education
Arquitetura DB
30’s
Site
Consulta
Destinos Datas
Consulta DB
MongoDB
MongoDB Cache
Globalcode – Open4education
Arquitetura
Procurando o pacote que mais se adequa ao seu orçamento
Consulta
Destinos Datas
Consulta DB
Servidor
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
Globalcode – Open4education
Resultado
Busca muito mais rápida Resultado Pacotes Aumento de venda
Globalcode – Open4education
Resultado
Cliente Chefe
Globalcode – Open4education
Resultado
Você Salário
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
Globalcode – Open4education
Dúvidas