Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
jjug_ccc_fall_ykonno.pdf
Search
Yusuke Konno(Rakus)
December 02, 2022
Technology
0
1k
jjug_ccc_fall_ykonno.pdf
Yusuke Konno(Rakus)
December 02, 2022
Tweet
Share
More Decks by Yusuke Konno(Rakus)
See All by Yusuke Konno(Rakus)
20210901_lt.pdf
yusukekonnorakus
0
19
meetup_20210608_kintai.pdf
yusukekonnorakus
0
1.5k
Other Decks in Technology
See All in Technology
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
410
20251222_サンフランシスコサバイバル術
ponponmikankan
2
140
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
6
3.6k
SQLだけでマイグレーションしたい!
makki_d
0
1.2k
通勤手当申請チェックエージェント開発のリアル
whisaiyo
3
470
オープンソースKeycloakのMCP認可サーバの仕様の対応状況 / 20251219 OpenID BizDay #18 LT Keycloak
oidfj
0
180
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
1.7k
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
6
2.4k
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
0
260
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
10k
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
1
1.9k
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
160
Featured
See All Featured
How to build a perfect <img>
jonoalderson
0
4.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Visualization
eitanlees
150
16k
So, you think you're a good person
axbom
PRO
0
1.8k
WENDY [Excerpt]
tessaabrams
8
35k
Building Adaptive Systems
keathley
44
2.9k
Prompt Engineering for Job Search
mfonobong
0
130
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
74
エンジニアに許された特別な時間の終わり
watany
106
220k
The browser strikes back
jonoalderson
0
120
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
0
95
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
ご清聴ありがとうございました!