外部APIヘルスチェックコンポーネント設計
タイムアウトとサーキットブレーカーパターンを含む、決済ゲートウェイ、メールサービス、サードパーティAPI向けのヘルスチェックコンポーネントを設計します。
Component Checks
詳細な説明
外部APIヘルスチェック
外部APIチェックは、アプリケーションが依存するサードパーティサービスが到達可能であることを確認します。カスケード障害を避けるために慎重な設計が必要です。
レスポンスコンポーネント
{
"external-api": {
"status": "UP",
"duration": "145ms",
"message": "Payment gateway responding",
"details": {
"endpoint": "api.stripe.com",
"lastSuccessful": "2024-01-15T10:29:55Z",
"circuitBreaker": "closed"
}
}
}
チェック項目
- 到達性: APIエンドポイントに接続できるか?
- 応答時間: レイテンシが許容範囲内か?
- 認証: APIキー/トークンが有効か?
- レート制限: レート制限しきい値に近づいているか?
- サーキットブレーカー状態: 開、半開、閉のどれか?
ベストプラクティス
| プラクティス | 理由 |
|---|---|
| 短いタイムアウト設定(2-3秒) | 遅いAPIがヘルスチェックをブロックしない |
| サーキットブレーカーの使用 | カスケード障害を防止 |
| 最終既知ステータスのキャッシュ | 障害中のAPIへの過負荷を防止 |
| ヘルスエンドポイントを最初にチェック | 本番エンドポイントにヒットしない |
タイムアウト戦略
外部APIチェックはヘルスチェックエンドポイントのタイムアウトより短いタイムアウトを持つべきです。Readinessプローブのタイムアウトが5秒の場合、外部APIチェックはレスポンス組み立ての余裕を残して2-3秒でタイムアウトすべきです。
ユースケース
決済ゲートウェイ(Stripe、PayPal)、メールプロバイダー(SendGrid)、SMSサービス(Twilio)、またはサービス機能に影響するサードパーティREST APIに依存するサービス。