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
Circuit Breakers & Microservices
Search
Bastian Hofmann
December 01, 2016
Programming
2
150
Circuit Breakers & Microservices
Bastian Hofmann
December 01, 2016
Tweet
Share
More Decks by Bastian Hofmann
See All by Bastian Hofmann
Monitoring in Kubernetes with Prometheus and Grafana
bastianhofmann
0
290
Creating a fast Kubernetes Development Workflow
bastianhofmann
0
86
Highly available cross-region deployments with Kubernetes
bastianhofmann
1
130
From source to Kubernetes in 30 minutes
bastianhofmann
0
130
Introduction to Kubernetes
bastianhofmann
1
140
CI/CD with Kubernetes
bastianhofmann
0
160
Creating a fast Kubernetes Development Workflow
bastianhofmann
1
250
Deploying your first Micro-Service application to Kubernetes
bastianhofmann
2
170
Creating a fast Kubernetes Development Workflow
bastianhofmann
0
180
Other Decks in Programming
See All in Programming
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
290
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
920
Amazon Qを使ってIaCを触ろう!
maruto
0
410
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
2
670
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
290
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
4
640
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
610
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Facilitating Awesome Meetings
lara
50
6.1k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Teambox: Starting and Learning
jrom
133
8.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Transcript
Circuit Breakers & Microservices @BastianHofmann
None
None
11 million users
193 countries
~1800 request/s
lots of data
>100 million publications
~ 140 components
~ 400 repositories
haproxy node memcache postgresql mongodb solr infinispan hbase mongodb solr
community services
+ async events, stream and batch processing
Latency
Stability
Handling failures
What do I do when something breaks?
Errors happen
Bugs
Performance regressions
Server outages
Database overloads
Service A Service B 200 OK
Service A Service B 5xx
Service A Service B Timeout
Circuit Breakers
Service A Service B 200 OK Circuit Breaker Status: closed
Error rate: 0
Service A Service B Error Circuit Breaker Status: -> open
Error rate: > threshold
Service A Service B Circuit Breaker Status: -> open Error
rate: > threshold
Service A Service B Error Circuit Breaker Status: -> open
Error rate: > threshold Test if still failing
Service A Service B 200 OK Circuit Breaker Status: ->
close Error rate: 0 Test if still failing
Gracefully handling exceptions
Component based fronted
None
None
None
None
None
None
None
Degrading Functionality
Profile Publications Publication Publication Publication AboutMe LeftColumn Image Menu Institution
Profile Publications Publication Publication Publication AboutMe LeftColumn Image Menu EXCEPTION
Institution
Profile Publications Publication Publication Publication LeftColumn Image Menu Institution
How do I handle traffic spikes?
Service A Service B 200 OK Circuit Breaker
Service A Service B Circuit Breaker Service C Circuit Breaker
Timeouts
Service A Service B Circuit Breaker Service C Circuit Breaker
Timeouts
Throttling
Service A Service B Circuit Breaker Service C Circuit Breaker
Only allow xx% of calls
None
Priority
Service A Service B Circuit Breaker Service C Circuit Breaker
100% of calls 10% of calls
https://github.com/Netflix/Hystrix
https://github.com/odesk/phystrix
None
http://twitter.com/BastianHofmann http://lanyrd.com/people/BastianHofmann http://speakerdeck.com/u/bastianhofmann
[email protected]