Thư Viện Câu Hỏi Phỏng Vấn

Tổng hợp các câu hỏi tuyển dụng thực tế theo nhiều cấp độ từ Entry đến Expert để bạn tự tin chinh phục nhà tuyển dụng.

01

Khái niệm Circuit Breaker Pattern trong thiết kế hệ thống phân tán là gì? Giải thích 3 trạng thái Closed, Open và Half-Open?

Senior

Circuit Breaker (Bộ ngắt mạch) là mẫu thiết kế ngăn chặn một service liên tục gửi request đến một service khác đang bị lỗi hoặc quá tải, giúp bảo vệ tài nguyên hệ thống không bị cạn kiệt (như nghẽn luồng) và ngăn sập dây chuyền (Cascading Failure).

  • 3 Trạng thái hoạt động:
    1. Closed (Đóng): Trạng thái bình thường. Mọi request đều được cho phép đi qua. Circuit Breaker sẽ theo dõi tỷ lệ lỗi của các phản hồi. Nếu tỷ lệ lỗi vượt quá ngưỡng cấu hình (ví dụ: 50% request thất bại), nó sẽ chuyển sang trạng thái Open.
    2. Open (Mở): Trạng thái ngắt mạch. Mọi request gửi đến sẽ bị chặn ngay lập tức và trả về lỗi giả lập (fallback error/timeout) mà không cần gọi đến service đích, giúp service đích có thời gian phục hồi.
    3. Half-Open (Nửa mở): Sau một khoảng thời gian chờ cấu hình sẵn ở trạng thái Open, Circuit Breaker sẽ tự động chuyển sang Half-Open. Nó cho phép một số lượng nhỏ request thử nghiệm đi qua. Nếu các request này thành công 100%, hệ thống coi như đã phục hồi và chuyển lại về Closed. Nếu có bất kỳ request nào thất bại, nó lập tức quay về trạng thái Open.
02

Làm thế nào để thiết kế một hệ thống có tính sẵn sàng cao (High Availability) đạt tiêu chuẩn "Five Nines" (99.999% uptime)? Các chiến lược chính là gì?

Expert

Tiêu chuẩn "Five Nines" tương đương với thời gian ngừng hoạt động (downtime) tối đa chỉ khoảng 5.26 phút trong một năm. Để thiết kế hệ thống như vậy, cần áp dụng các chiến lược sau:

  1. Loại bỏ Single Point of Failure (SPOF): Mọi thành phần trong hệ thống (Load Balancers, App Servers, Databases, Network) đều phải có cơ chế dự phòng (Redundancy) hoạt động song song hoặc ở trạng thái Active-Standby.
  2. Tự động phát hiện và chuyển vùng lỗi (Failover): Sử dụng các công cụ giám sát sức khỏe (Health Checks) để tự động cô lập node lỗi và định hướng lưu lượng sang node khỏe mạnh (ví dụ: K8s Self-Healing, Keepalived).
  3. Hệ thống phân tán đa vùng (Multi-Region Deployment): Triển khai ứng dụng trên nhiều vùng địa lý độc lập để phòng ngừa thiên tai hoặc sự cố diện rộng của nhà cung cấp cloud (sử dụng Route 53 Geolocation/Failover routing).
  4. Cơ chế cô lập lỗi (Graceful Degradation & Circuit Breaker): Cho phép tắt bớt các tính năng không thiết yếu khi hệ thống quá tải để bảo vệ các dịch vụ cốt lõi không bị sập theo dây chuyền (Cascading Failures).

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học