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
80
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
290
Introdução a gRPC
leandrolugaresi
0
500
Other Decks in Programming
See All in Programming
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
ONE WEDGE_company_guide
1wedge_one
0
490
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
270
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
8
4.1k
Tailwind CSSを本気でカスタマイズする方法
fsubal
13
5.3k
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
210
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
540
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.4k
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.5k
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
190
Netty Chicago Java User Group 2024-04-17
sullis
0
180
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Writing Fast Ruby
sferik
621
60k
The Invisible Customer
myddelton
114
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
For a Future-Friendly Web
brad_frost
172
9k
Building Applications with DynamoDB
mza
88
5.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Building Flexible Design Systems
yeseniaperezcruz
319
37k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
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/