Bài viết liên quan
Bộ ngắt mạch (Circuit Breaker)
Circuit Breaker
Bộ ngắt mạch (Circuit Breaker) là gì?
Bộ ngắt mạch (Circuit Breaker) là mẫu thiết kế (design pattern) trong kiến trúc microservice ngân hàng, giúp ngăn chặn lỗi lan truyền (cascading failure) khi một dịch vụ phụ thuộc gặp sự cố. Khi tỷ lệ yêu cầu thất bại vượt ngưỡng cho phép, hệ thống tự động "ngắt mạch" — ngừng gọi đến dịch vụ lỗi và trả về phản hồi dự phòng (fallback) ngay lập tức, thay vì để hàng nghìn request bị treo, tiêu tốn thread pool và băng thông.
Đặc điểm
- Ba trạng thái hoạt động: Closed (đóng - bình thường), Open (mở - ngắt kết nối), Half-Open (bán mở - thử khôi phục).
- Ngưỡng cấu hình: failure rate threshold (ví dụ 50%), số request tối thiểu, timeout (ms), sleep window (giây).
- Phản hồi dự phòng (fallback): Trả dữ liệu cache, giá trị mặc định hoặc thông báo lỗi thân thiện với khách hàng.
- Thư viện phổ biến: Resilience4j (Java), Polly (.NET), Sentinel (Alibaba), Istio (service mesh).
- Tích hợp monitoring: Kết hợp Prometheus, Grafana để cảnh báo khi mạch mở.
Ví dụ
Khi dịch vụ chấm điểm tín dụng (credit scoring) từ CIC ngừng phản hồi trong hệ thống cho vay online của ngân hàng, Circuit Breaker tự chuyển sang trạng thái Open, lập tức trả về điểm tín dụng từ cache kèm cảnh báo "Hệ thống đang xử lý". Sau 30 giây chuyển sang Half-Open thử lại; nếu thành công sẽ về Closed, nếu thất bại tiếp tục Open. Theo Thông tư 17/2019/TT-NHNN quy định về an toàn hệ thống ngân hàng điện tử và Quyết định 810/QĐ-NHNN về triển khai ứng dụng CNTT, ngân hàng phải đảm bảo hệ thống hoạt động liên tục 99.9% — Circuit Breaker là giải pháp bắt buộc trong thiết kế microservice.