⚙️

Khái Niệm và Tầm Quan Trọng của Tính Khả Dụng Cao

Aug 22, 2024

Ghi chú bài giảng về Tính khả dụng cao trong thiết kế hệ thống phân tán

Giới thiệu

  • Kênh Tik JavaScript chia sẻ kiến thức lập trình và giải quyết vấn đề lập trình.
  • Video thuộc series về thiết kế hệ thống phân tán.

Nội dung chính

Tính khả dụng cao (High Availability - HA)

  • Định nghĩa: Khả năng của một hệ thống thực hiện các chức năng mà không bị gián đoạn.
  • Tính khả dụng cao giúp hạn chế tối đa thời gian ngừng hoạt động của hệ thống.

Tầm quan trọng của tính khả dụng cao

  • Hệ thống không có tính khả dụng cao dễ dẫn đến rủi ro và có thể bị "diệt vong".
  • Cần có ba vấn đề quan trọng để hiểu về tính khả dụng cao:
    1. Tính khả dụng là gì và cách triển khai.
    2. Công thức tính toán thời gian cho phép ngừng hoạt động của hệ thống.
    3. Các phương pháp triển khai hệ thống có tính khả dụng cao.

Khái niệm và công thức tính toán

  • Nguồn gốc: Định lý cáp của Eric Brewer.
  • Công thức tính toán thời gian cho phép:
    • Tính khả dụng 99,99% cho phép ngừng hoạt động là 5 phút 15 giây trong một năm.
    • Công thức:
      • Thời gian ngừng hoạt động chấp nhận = (1 - Tính khả dụng) * Thời gian hoạt động mong muốn*

Các phương pháp triển khai tính khả dụng cao

  1. Kiến trúc Primary + Secondary:

    • Dữ liệu chính và một bản sao lưu.
    • Hạn chế: Tính nhất quán có thể không cao.
  2. Kiến trúc Primary + Primary:

    • Hai hệ thống chính đồng bộ.
    • Tăng tốc độ và khả năng chịu sẵn sàng cao, nhưng cần cẩn trọng với trạng thái cuối cùng khi cập nhật.
  3. Kiến trúc Multi-Primary:

    • Cả hai hệ thống đều có thể ghi và đọc dữ liệu.
    • Tăng thông lượng nhưng có nguy cơ cao về xung đột dữ liệu.

Kết luận

  • Tính khả dụng cao là tiêu chí quan trọng trong thiết kế hệ thống phân tán.
  • Cần lựa chọn kiến trúc phù hợp để đảm bảo tính khả dụng cao và hiệu suất tối ưu.

Video tiếp theo

  • Dự kiến sẽ giải đáp câu hỏi từ khán giả và giải thích về luồng đi của cước điện thoại trong các ứng dụng như Shopee và Zalo.