ヘルスチェックにおけるサーキットブレーカーステータス
外部依存関係のサーキットブレーカー状態(closed、open、half-open)を公開するヘルスチェックコンポーネントを設計し、レジリエンスパターンのオブザーバビリティを実現します。
Patterns
詳細な説明
サーキットブレーカーヘルス統合
ヘルスチェックにサーキットブレーカー状態を含めることで、サービスのレジリエンスメカニズムの可視性を提供し、劣化動作の説明に役立ちます。
レスポンスコンポーネント
{
"circuitBreakers": {
"payment-gateway": {
"status": "closed",
"failureRate": "2.5%",
"failureThreshold": "50%"
},
"email-service": {
"status": "open",
"failureRate": "75%",
"nextRetryAt": "2024-01-15T10:30:00Z"
},
"inventory-api": {
"status": "half-open",
"testRequestsAllowed": 3,
"testRequestsCompleted": 1
}
}
}
サーキットブレーカーの状態
| 状態 | 意味 | ヘルスへの影響 |
|---|---|---|
| Closed | 通常動作、リクエストが通過 | UP |
| Open | 障害がしきい値を超過、リクエストブロック | DEGRADEDまたはDOWN |
| Half-open | サービス回復をテスト中 | DEGRADED |
サーキットブレーカー状態を公開する理由
- デバッグ: 特定の機能が利用できない理由を説明
- 監視: サーキットブレーカーの遷移を時系列で追跡
- アラート: 重要な依存関係でサーキットが開いた時にアラート
- キャパシティプランニング: 頻繁なサーキットオープンはリソース不足を示す
ベストプラクティス
ヘルスマッピングでは重要なサーキットブレーカーと非重要なものを分けてください。決済ゲートウェイのオープンサーキットはDOWNです。分析サービスのオープンサーキットはDEGRADEDが最大です。
ユースケース
外部依存関係にサーキットブレーカーパターン(Hystrix、Resilience4j、Polly)を使用し、オブザーバビリティダッシュボードにサーキットブレーカー状態を表示する必要があるレジリエントなマイクロサービス。