Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
jjug_ccc_fall_ykonno.pdf
Search
Yusuke Konno(Rakus)
December 02, 2022
Technology
1.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
jjug_ccc_fall_ykonno.pdf
Yusuke Konno(Rakus)
December 02, 2022
More Decks by Yusuke Konno(Rakus)
See All by Yusuke Konno(Rakus)
20210901_lt.pdf
yusukekonnorakus
0
29
meetup_20210608_kintai.pdf
yusukekonnorakus
0
1.7k
Other Decks in Technology
See All in Technology
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
580
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
770
Running Kotlin + Quarkus with Lambda
nealle
1
3.7k
パッチ更新でterraform initが落ちた日
grimoh
1
140
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
180
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
260
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.3k
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
6
4.9k
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
110
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
460
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Product Roadmaps are Hard
iamctodd
55
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Designing for humans not robots
tammielis
254
26k
Paper Plane
katiecoart
PRO
5
54k
Unsuck your backbone
ammeep
672
58k
The Curse of the Amulet
leimatthew05
3
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The agentic SEO stack - context over prompts
schlessera
0
970
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
Transcript
©2022 RAKUS Co., Ltd. Javaで実現する フォールトトレランス 〜Resilience4jを使ったサーキットブレーカーの実装〜 株式会社ラクス 今野裕介
今野裕介(こんのゆうすけ) • 株式会社ラクス所属 • サーバーサイドエンジニア • 楽楽勤怠の開発に従事 • チーム内における役割 ◦
打刻機能をメインに新機能開発を担当 ◦ 他にも開発プロセスの改善などいろいろやってます 2
サーキットブレーカーパターンとは • マイクロサービスなどでカスケード障害に対応するために採用される • 障害を検知したサービスへのリクエストを予め遮断する ◦ 局所的な問題がシステム全体に波及しないようにする ◦ 予め遮断することで応答が速くなる 3
Resilience4jの概要 • Javaのフォールトトレラント用のライブラリ ◦ サーキットブレーカー以外にもリトライ、流量制御、 タイムアウトハンドリングなどができる • 各要素を組み合わせて適用できる ◦ サーキットブレーカー+リトライなど
• 内部依存しているのはvavrのみ 4
サーキットブレーカーのステート • CLOSED、OPEN、HALF_OPENの3つがある ◦ CLOSED:ブレーカーは未稼働=すべてのリクエストが通る ◦ OPEN:ブレーカーは稼働=すべてのリクエストを遮断 ◦ HALF_OPEN:ブレーカーは半稼働=一部のリクエストだけ通す 5
CLOSED OPEN HALF_OPEN
実装のステップ • 実装はたったの3ステップ ◦ 設定を作る ◦ リクエスト部分をデコレートする ◦ デコレートした処理を実行する •
サーキットブレーカー以外も上記の方法で実現できる ◦ また、複数のフォールトトレランスを組み合わせられる 6
コードサンプル(サーキットブレーカー) 7
リトライ • デコレートした処理を指定回数だけやりなおす処理 ◦ 偶発的な失敗をリカバリするのに向いている • 実装方法はサーキットブレーカーと同様に3ステップ ◦ 設定 =>
デコレーション => 実行 8
コードサンプル(リトライ) 9
コードサンプル(組み合わせ) 10
勤怠管理システムでの適用例 • ICカード打刻機能で採用 ◦ 専用端末によるICカード打刻用のマイクロサービス ◦ 独立したインフラ・アプリケーションを構築している • 勤怠管理本体に対してリクエストを送る際に適用 ◦
本体と通信が不通な場合に備え、パターン適用 ◦ 他にはリトライも適用 11
勤怠管理システムでの適用例 ICカード 打刻端末 打刻アプリ ケーション 本体 同期バッチ ① ④ ②
③ A B サーキットブレーカー+リトライ リトライのみ 12
まとめ • Resilience4jで簡単にサーキットブレーカーを実現できる! • Resilience4jは適用も簡単! ◦ 設定 => 対象処理のデコレート =>
実行の3ステップ ◦ 複数のフォールトトレランスの組み合わせもかんたん 13
ご清聴ありがとうございました!