Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Microservices e RabbitMQ
Search
Leandro Lugaresi
May 20, 2016
Programming
0
95
Microservices e RabbitMQ
Leandro Lugaresi
May 20, 2016
Tweet
Share
More Decks by Leandro Lugaresi
See All by Leandro Lugaresi
Pipelines em Go
leandrolugaresi
0
520
Introdução a gRPC
leandrolugaresi
0
710
Other Decks in Programming
See All in Programming
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
190
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
580
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
300
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
150
条件判定に名前、つけてますか? #phperkaigi #c
77web
1
180
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
650
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
500
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
2
550
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
520
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
230
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
420
AI 開発合宿を通して得た学び
niftycorp
PRO
0
150
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
280
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Abbi's Birthday
coloredviolet
2
5.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
150
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
290
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
980
Transcript
Microservices e RabbitMQ Messages, messages everywhere!
Quem sou eu? > Desenvolvedor na Coderockr > github.com/leandro-lugaresi >
@leandrolugaresi > leandrolugaresi.com.br
Monolitos vs Microservices
None
Monolitos são ...
Simples para desenvolver
Simples para testar
Simples para implantar
Evolui rapidamente
Porém... Eles crescem!
None
> Maior risco de falhas > Deploy de toda a
aplicação para pequenas alterações > Dificuldades para realizar mudanças > Updates menos frequentes Resultando em:
None
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
Requests RPC || REST
None
Message-Driven RabbitMQ, HornetQ, Apache Kafka, ZeroMQ
None
None
> 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
None
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
None
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
None
None
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/