Microservices e RabbitMQ
-
Upload
leandro-lugaresi -
Category
Technology
-
view
145 -
download
0
Transcript of Microservices e RabbitMQ
Microservices e RabbitMQ
Messages, messages everywhere!
Quem sou eu?
> Desenvolvedor na Coderockr
> github.com/leandro-lugaresi
> @leandrolugaresi
> leandrolugaresi.com.br
Monolitosvs
Microservices
Monolitossão...
Simples para
desenvolver
Simples para testar
Simples para
implantar
Evolui rapidamente
Porém...Eles crescem!
> Maior risco de falhas> Deploy de toda a aplicação
para pequenas alterações> Dificuldades para realizar
mudanças> Updates menos frequentes
Resultando em:
E os microservices?
Provêm vários benefícios,
mas vêm com custos
↑ Módulos bem separados
↑ Deploy independente
↑ Liberdade para escolher tecnologias
↓Aumento da complexidade
↓Atomic Transactions
↓Persistência eventual
↓Sistemas distribuídos
Onde o RabbitMQ entra nessa
história?
Os serviços precisam se comunicar
RequestsRPC || REST
Message-DrivenRabbitMQ, HornetQ,
Apache Kafka, ZeroMQ
> Open Source com suporte comercial> Robusto, feito em Erlang usando OTP> Protocolos: AMQP, STOMP, MQTT> Sistema de plugins> Fácil de instalar, usar e monitorar> Clients para muitas linguagens
Default Exchange
Direct Exchange
Fanout Exchange
Topic Exchange
Headers Exchange
Queues
> Nome> Durável ou temporária> Exclusiva> Auto-delete> Argumentos (message TTL)
E as mensagens?
Uma mensagem pode conter um
evento codificado como seu corpo
Dicas
Utilize UUID
Utilize correlation IDS
Cuidado,Mensagens podem
ser duplicadas!
Monitore as queues
Somente salve mensagens em
disco se for realmente necessário
Agrupe exchanges por objetivos
Dúvidas?
Referências
> http://www.reactivemanifesto.org/> http://martinfowler.com/articles/microservices.html> http://blogs.vmware.com/vfabric/2013/01/messaging-
architecture-using-rabbitmq-at-the-worlds-8th-largest-retailer.html
> https://www.nginx.com/blog/event-driven-data-management-microservices/
> https://www.rabbitmq.com/