Hiểu hơn về CAP Theorem trong System Design

3790

Bài viết được sự cho phép của tác giả Kiên Nguyễn

Một số bạn mới bắt đầu làm quen với System Design khi thấy CAP Theorem không khỏi bỡ ngỡ. Theorem – Định lý, nghe thôi là đã thấy nhức đầu. Tuy nhiên trong System Design thì CAP không quá phức tạp.

  11 mẹo đơn giản để tăng hiệu suất Java cấp tốc
  Capacity Planning - Dự toán công suất cho ứng dụng (Tập 1 )

Biết về CAP Theorem giúp ta có cái nhìn tổng quan hơn, tốt hơn khi thiết kế hệ thống. Không những vậy còn tránh những sai sót không đáng có khi thiết kế.

Bắt đầu ngay thôi nào!

1. CAP Theorem là gì?

CAP bao gồm 3 từ consistencyavailability, và partition tolerance. (Tính nhất quán, tính khả dụng và dung sai phân vùng).

2. Cap Theorem và Cloud Applications

Đọc qua định nghĩa phía trên chắc một số bạn sẽ thắc mắc về Hệ thống phân tán. (Distributed System)

Đấy, hiểu biết về CAP Theorem cũng là một điểm cộng lớn, cần thiết để nâng cao skills khi làm việc với cloud applications. Phân tích sâu hơn vào từng chữ cái ha.

2.1 Consistency – tính nhất quán

Giả sử bạn đang thiết kế hệ thống bán vé máy bay. Sau khi thiết kế xong xuôi, hệ thống đưa vào vận hành.

Giá vé từ HCM- Thailand có thay đổi, cập nhật từ $300 lên $350. Client A load website trước khi giá cập nhât, thấy giá vé chỉ $300. Client B vào ngay sau đó, lại thấy giá $350.

Hiểu hơn về CAP Theorem trong System Design

Chính sự khác biệt này được gọi là không nhất quán, dữ liệu hiển thị cho client tốt nhất nên giống nhau về tất cả nội dung.

Hiểu hơn về CAP Theorem trong System Design

Thiết kế sao cho dữ liệu trong toàn bộ hệ thống được nhất quán, giống nhau ở tất cả các client, giống nhau ở cùng hoặc một thời điểm client load máy. Đó là đảm bảo cho chữ C – Consistency – Tính nhất quán trong CAP Theorem

2.2 Availability – tính sẵn sàng

Phần thứ hai trong CAP Theorem là Availability – tính sẵn sàng. Ngoài chuyện dữ liệu phải đảm bảo tính nhất quán. Dữ liệu cũng phải sẵn sàng cho người dùng.

Tính sẵn sàng cũng là một phần đáng nhớ. Thực tế ứng dụng rất nhiều trong micro service. Khi một node hoặc một service con down, các service khác vẫn có thể hoạt động độc lập.

Hiểu hơn về CAP Theorem trong System Design

2.3 Partition tolerance – dung sai phân vùng

Chỗ này dịch dung sai phân vùng thì không biết có đúng không nữa. Thôi thì điểm xuyết qua cái lý thuyết bên tiếng Anh xem sao.

À, vậy là từ Partition tolerance dung sai phân vùng ở đây phải được hiểu như bên kỹ thuật. Khi thực hiện hàn, cắt, ghép với độ chính xác cao, sẽ có một con số có thể chấp nhận là dung sai

Phía bên hệ thống phân bán, lúc thiết kế phải đảm bảo sao cho khi một số node die, cả hệ thống vẫn hoạt động bình thường.

Hiểu hơn về CAP Theorem trong System Design

3. Tổng kết

4. Tham khảo

Bài viết về CAP

Một số bài viết hay khác về Design System.

Có gì thắc mắc cứ comment đây nha! – Please feel free to comment here!
Bài viết gốc được đăng tải tại kieblog.vn
Có thể bạn quan tâm:
Xem thêm Việc làm Developer hấp dẫn trên TopDev