Hệ thống kiến thức về high availability: SLA, rate limiting, circuit breaker, degradation, retry, idempotency, redundancy và kiểm thử tải

Tài liệu hệ thống kiến thức về high availability này dành cho việc học backend, system design và ôn phỏng vấn, tổng hợp các bài viết về high availability trên trang xoay quanh việc giảm sự cố, cô lập sự cố, khôi phục nhanh, giảm ảnh hưởng của request lặp và traffic bất thường.
Nếu có ít thời gian, bạn nên đọc trước Tổng hợp câu hỏi phỏng vấn system design về high availability để nhanh chóng xây dựng danh sách câu hỏi thường gặp; nếu muốn bổ sung nền tảng một cách có hệ thống, bạn có thể đọc theo thứ tự bên dưới.
Dành cho ai
- Backend developer đang học system design về high availability một cách có hệ thống.
- Người chuẩn bị phỏng vấn backend cho kỳ tuyển dụng sinh viên mới tốt nghiệp, tuyển dụng người đã có kinh nghiệm hoặc các công ty vừa và lớn.
- Engineer muốn bổ sung năng lực về rate limiting, degradation, circuit breaker, retry, idempotency, disaster recovery và kiểm thử tải.
- Người đã gặp các vấn đề như API timeout, request lặp, lỗi từ downstream, traffic tăng đột biến, system avalanche nhưng thiếu giải pháp có hệ thống.
Trọng tâm học
- High availability không có nghĩa là “không xảy ra sự cố”, mà là khi sự cố xảy ra thì có thể kiểm soát, cô lập và khôi phục tối đa.
- SLA, chỉ số availability, RTO và RPO là ngôn ngữ quan trọng để đánh giá thiết kế high availability.
- Rate limiting, degradation, circuit breaker và timeout retry lần lượt giải quyết các vấn đề stability ở những tầng khác nhau.
- Thiết kế idempotency là năng lực nền tảng để xử lý request lặp, auto retry, message được consume lặp và callback thanh toán.
- Redundancy, disaster recovery, performance testing, diễn tập sự cố và gray release quyết định hệ thống có chịu được rủi ro production thực tế hay không.
Thứ tự đọc đề xuất
- Tổng hợp câu hỏi phỏng vấn system design về high availability: trước hết xây dựng danh sách câu hỏi thường gặp về SLA, rate limiting, circuit breaker, retry, idempotency, disaster recovery và kiểm thử tải.
- Giải thích chi tiết về system design của high availability: hiểu có hệ thống phương pháp thiết kế tổng thể của kiến trúc high availability.
- Giải thích chi tiết về service rate limiting, Giải thích chi tiết về service degradation và circuit breaker, Giải thích chi tiết về cơ chế timeout và retry: nắm vững bộ ba quản trị stability.
- Giải thích chi tiết về thiết kế API idempotency: hiểu các scenario như request lặp, business idempotency và callback thanh toán.
- Giải thích chi tiết về thiết kế redundancy và Nhập môn performance testing: bổ sung kiến thức về disaster recovery, kiểm thử tải, đánh giá capacity và xác minh sự cố.
Bài viết cốt lõi
Tổng quan và lộ trình phỏng vấn
- Tổng hợp câu hỏi phỏng vấn system design về high availability: kết nối SLA, single point of failure, rate limiting, degradation, circuit breaker, timeout retry, API idempotency, redundancy, disaster recovery và performance testing.
- Giải thích chi tiết về system design của high availability: giải thích SLA, bao nhiêu số 9, quản trị single point of failure, high availability của cache, asynchronous traffic peak shaving, gray release và khôi phục sự cố.
Quản trị stability
- Giải thích chi tiết về service rate limiting: tìm hiểu fixed window, sliding window, token bucket, leaky bucket, Sentinel, Redis Lua và rate limiting của Redisson.
- Giải thích chi tiết về service degradation và circuit breaker: tìm hiểu Fallback, degradation switch, state machine của circuit breaker, hiệu ứng system avalanche, chiến lược isolation và lựa chọn framework.
- Giải thích chi tiết về cơ chế timeout và retry: tìm hiểu connection timeout, read timeout, exponential backoff, random jitter, retry storm và idempotency.
Idempotency, disaster recovery và xác minh
- Giải thích chi tiết về thiết kế API idempotency: giải thích idempotency key, Token, unique index, deduplication table, optimistic lock, pessimistic lock, distributed lock và callback thanh toán.
- Giải thích chi tiết về thiết kế redundancy: giải thích hardware redundancy, service redundancy, data redundancy, geographic redundancy, disaster recovery trong cùng thành phố, disaster recovery khác địa điểm và kiến trúc multi-active.
- Nhập môn performance testing: tìm hiểu QPS, TPS, RT, P90/P99/P999, đánh giá capacity, stress testing, stability testing và công cụ kiểm thử tải.
Câu hỏi thường gặp
- High availability system được định nghĩa availability như thế nào? Mỗi số 9 lần lượt có ý nghĩa gì?
- RTO và RPO khác nhau như thế nào?
- Rate limiting, degradation và circuit breaker lần lượt giải quyết vấn đề gì?
- Token bucket và leaky bucket khác nhau như thế nào? Distributed rate limiting được triển khai ra sao?
- Vì sao timeout và retry có thể gây system avalanche?
- API idempotency có những phương án triển khai nào? Làm thế nào để đảm bảo idempotency cho callback thanh toán?
- Redundancy, disaster recovery, multi-active trong cùng thành phố và multi-active khác địa điểm lần lượt phù hợp với scenario nào?
- Performance testing, stress testing và stability testing khác nhau như thế nào?
- Làm thế nào để xác minh thiết kế high availability có hiệu quả thông qua diễn tập sự cố?
Chuyên đề liên quan
- Hệ thống kiến thức về high performance
- Hệ thống kiến thức về distributed system
- System design
- Chuyên đề message queue
Lời cuối
Nếu nội dung hữu ích với bạn, hãy tiện tay tặng JavaGuide một Star miễn phí để ủng hộ: GitHub | Gitee.
JavaGuide đã được duy trì gần bảy năm, tích lũy 6100+ commit, với sự chung tay hoàn thiện của 620+ contributor. Star, phản hồi và PR của bạn đều là động lực để dự án tiếp tục cập nhật.
Nếu bạn đang chuẩn bị phỏng vấn backend / phát triển ứng dụng AI, có thể tham khảo Knowledge Planet của tôi, bao gồm các project thực tế về backend và AI, tối ưu CV, hỏi đáp 1-1 và tài liệu về các trọng điểm thường gặp, đã được duy trì liên tục sáu năm.
