+ All Categories
Home > Technology > Microservices e RabbitMQ

Microservices e RabbitMQ

Date post: 10-Jan-2017
Category:
Upload: leandro-lugaresi
View: 140 times
Download: 0 times
Share this document with a friend
51
Microservices e RabbitMQ Messages, messages everywhere!
Transcript
Page 1: Microservices e RabbitMQ

Microservices e RabbitMQ

Messages, messages everywhere!

Page 2: Microservices e RabbitMQ

Quem sou eu?

> Desenvolvedor na Coderockr

> github.com/leandro-lugaresi

> @leandrolugaresi

> leandrolugaresi.com.br

Page 3: Microservices e RabbitMQ

Monolitosvs

Microservices

Page 4: Microservices e RabbitMQ
Page 5: Microservices e RabbitMQ

Monolitossão...

Page 6: Microservices e RabbitMQ

Simples para

desenvolver

Page 7: Microservices e RabbitMQ

Simples para testar

Page 8: Microservices e RabbitMQ

Simples para

implantar

Page 9: Microservices e RabbitMQ

Evolui rapidamente

Page 10: Microservices e RabbitMQ

Porém...Eles crescem!

Page 11: Microservices e RabbitMQ
Page 12: Microservices e RabbitMQ

> Maior risco de falhas> Deploy de toda a aplicação

para pequenas alterações> Dificuldades para realizar

mudanças> Updates menos frequentes

Resultando em:

Page 13: Microservices e RabbitMQ
Page 14: Microservices e RabbitMQ

E os microservices?

Page 15: Microservices e RabbitMQ

Provêm vários benefícios,

mas vêm com custos

Page 16: Microservices e RabbitMQ

↑ Módulos bem separados

Page 17: Microservices e RabbitMQ

↑ Deploy independente

Page 18: Microservices e RabbitMQ

↑ Liberdade para escolher tecnologias

Page 19: Microservices e RabbitMQ

↓Aumento da complexidade

Page 20: Microservices e RabbitMQ

↓Atomic Transactions

Page 21: Microservices e RabbitMQ

↓Persistência eventual

Page 22: Microservices e RabbitMQ

↓Sistemas distribuídos

Page 23: Microservices e RabbitMQ

Onde o RabbitMQ entra nessa

história?

Page 24: Microservices e RabbitMQ

Os serviços precisam se comunicar

Page 25: Microservices e RabbitMQ

RequestsRPC || REST

Page 26: Microservices e RabbitMQ
Page 27: Microservices e RabbitMQ

Message-DrivenRabbitMQ, HornetQ,

Apache Kafka, ZeroMQ

Page 28: Microservices e RabbitMQ
Page 29: Microservices e RabbitMQ
Page 30: Microservices e RabbitMQ

> 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

Page 31: Microservices e RabbitMQ
Page 32: Microservices e RabbitMQ

Default Exchange

Page 33: Microservices e RabbitMQ

Direct Exchange

Page 34: Microservices e RabbitMQ

Fanout Exchange

Page 35: Microservices e RabbitMQ

Topic Exchange

Page 36: Microservices e RabbitMQ

Headers Exchange

Page 37: Microservices e RabbitMQ

Queues

> Nome> Durável ou temporária> Exclusiva> Auto-delete> Argumentos (message TTL)

Page 38: Microservices e RabbitMQ

E as mensagens?

Page 39: Microservices e RabbitMQ

Uma mensagem pode conter um

evento codificado como seu corpo

Page 40: Microservices e RabbitMQ
Page 41: Microservices e RabbitMQ

Dicas

Page 42: Microservices e RabbitMQ

Utilize UUID

Page 43: Microservices e RabbitMQ

Utilize correlation IDS

Page 44: Microservices e RabbitMQ

Cuidado,Mensagens podem

ser duplicadas!

Page 45: Microservices e RabbitMQ

Monitore as queues

Page 46: Microservices e RabbitMQ

Somente salve mensagens em

disco se for realmente necessário

Page 47: Microservices e RabbitMQ

Agrupe exchanges por objetivos

Page 48: Microservices e RabbitMQ
Page 49: Microservices e RabbitMQ
Page 50: Microservices e RabbitMQ

Dúvidas?


Recommended