Pod'larımız sağlıklı olduğunu bildiriyor ama trafik sunamıyor. Nasıl olur?

Sağlık kontrolü:

livenessProbe:
                                    httpGet:
                                    path: /health
                                    port: 8080

İşleyici (Handler):

@GetMapping("/health")
                                    public String health() {
                                    return "OK";  // Her zaman OK döner
                                    }

Sorun:

  • Uygulama başlar, "OK" döner
  • Veritabanı bağlantısı başarısız
  • Önbelleğe ulaşılamıyor
  • Harici API zaman aşımına uğradı
  • Ama sağlık kontrolü: "OK" ✅

Daha iyi yaklaşım:

@GetMapping("/health/ready")
                                    public ResponseEntity<HealthStatus> readiness() {
                                    boolean dbOk = checkDatabase();
                                    boolean cacheOk = checkCache();
                                    if (dbOk && cacheOk) {
                                    return ResponseEntity.ok(status);
                                    }
                                    return ResponseEntity.status(503).body(status);
                                    }

Ders: Sağlığı kontrol etmeyen bir sağlık kontrolü, hiç sağlık kontrolü olmamasından daha kötüdür.


← Alınan Derslere Dön