Handle Failover Service
Dạ, khi một service trong hệ thống bị chết, em xử lý fail-over như sau:
1. Sử dụng Service Discovery + Load Balancer:
Em dùng Spring Cloud Eureka hoặc Consul để đăng ký/dò service.
API Gateway (hoặc client) sẽ không gọi đến instance đã chết nhờ health check tự động.
Load balancer (Ribbon, Spring Cloud LoadBalancer) sẽ tự chọn instance còn sống.
2. Replication (Multiple Instances):
Mỗi service em deploy tối thiểu 2 instance (multi-pod nếu dùng Kubernetes).
Nếu 1 instance chết, request sẽ được chuyển sang instance khác.
3. Health Check + Auto-restart:
Dùng liveness/readiness probe (Kubernetes) hoặc Docker healthcheck.
Khi service fail, orchestrator sẽ tự khởi động lại container.
4. Circuit Breaker:
Dùng Resilience4j CircuitBreaker: nếu call đến service A liên tục lỗi → circuit sẽ open → không gọi nữa trong vài giây → tránh làm chết service gọi.
5. Fallback:
Nếu service phụ chết (không critical), em dùng fallback logic:
Trả data tạm thời.
Hoặc queue lại để xử lý sau.
Tóm lại: em đảm bảo fail-over bằng replication, service discovery, health check, circuit breaker, và fallback, giúp hệ thống tự phục hồi, không gián đoạn.
Last updated