akka 2.0 + mongodb - caso de sucesso no ecommerce turismo

Post on 25-May-2015

570 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

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

rodrigo.almeida@jfive.com.br

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

top related