Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Como tratar cenários de alta concorrência usa...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for Walkirya Heto Walkirya Heto
December 19, 2017

Como tratar cenários de alta concorrência usando o modelo de atores e o framework Akka

This presentation was made in Brazil at DevFest XP By 99 '17 ( https://devfestxp.com/ )

Avatar for Walkirya Heto

Walkirya Heto

December 19, 2017

Other Decks in Technology

Transcript

  1. Como tratar cenários de alta concorrência usando o modelo de

    atores e o framework Akka Walkirya Heto
  2. Sem bloqueios suficientes, o estado fica corrompido. Com muitos bloqueios,

    o desempenho sofre e facilmente leva a deadlocks.
  3. Atores • Encapsula estado e comportamento • Pode mudar de

    estado conforme a mensagem que receber • Se comunica através de mensagem ao invés de chamar métodos • Um ator pode enviar uma mensagem e continuar sem bloquear. Portanto, pode realizar mais na mesma quantidade de tempo.
  4. - Mudar seu estado ou comportamento - Enviar mensagens para

    outros atores - Criar um número finito de atores filhos
  5. PayPal • AKKA, Scala, Kafka e Akka Streams • 1

    bi transações por dia usando 8 vms • 80% menos código • 10x performance
  6. O envio de mensagens não transfere o thread de execução

    do remetente para o destino -> evita locking e blocking Fonte: Learning Akka: The Course Overview from Udacity
  7. Estratégias de supervisão 1. Resume o filho 2. Reinicia o

    filho 3. Termina o filho 4. Escala a falha
  8. Estratégias de supervisão OneForOneStrategy: pai aplica a ação para o

    filho especificamente AllForOneStrategy: pai aplica sua escolha para todos os filhos
  9. Recursos do framework • AKKA http • AKKA cluster •

    AKKA router • Alpakka: stream processing com backpressure • AKKA persistence
  10. Documentação: https://akka.io Carl Hewitt, Actor Model of Computation: Scalable Robust

    Information Systems Artigos legais: https://www.lightbend.com/blog/the-six-questions-architects-ask-about-using-akka-in-prod uction https://www.devmedia.com.br/akka-programacao-concorrente/30714 https://www.toptal.com/scala/concurrency-and-fault-tolerance-made-easy-an-intro-to-akka Vídeos legais: https://www.youtube.com/watch?v=lPTqcecwkJg https://www.youtube.com/watch?v=GBvtE61Wrto Curso legal: Learning Akka: The Course Overview from Udacity