Hydration trong React
Hydration trong React đóng vai trò quan trọng trong việc hiển thị nội dung phía máy chủ trên phía client. Trong bài viết này, chúng ta sẽ tìm hiểu...

13/02/2025
07/02/2025
Thiết kế hệ thống đóng vai trò quan trọng trong việc xây dựng các hệ thống phần mềm có khả năng mở rộng và hiệu quả, việc hiểu rõ các thuật ngữ này là điều cần thiết. Hãy cùng mình tìm hiểu 50 thuật ngữ thiết kế hệ thống thường được sử dụng nhé!
Khả năng mở rộng đề cập đến việc hệ thống có thể xử lý tải tăng lên bằng cách bổ sung tài nguyên (như thêm máy chủ). Có hai loại chính:
Bộ cân bằng tải có trách nhiệm phân phối lưu lượng mạng đến nhiều máy chủ khác nhau để đảm bảo không có máy chủ nào bị quá tải.
Bộ nhớ đệm lưu trữ bản sao dữ liệu trong một khu vực tạm thời để các yêu cầu sau có thể được phục vụ nhanh hơn.
Độ trễ là thời gian để một gói dữ liệu di chuyển từ nguồn đến đích. Đây là thước đo quan trọng để đánh giá hiệu suất của hệ thống.
Thông lượng là lượng dữ liệu mà hệ thống có thể xử lý trong một khoảng thời gian nhất định, thường được đo bằng số yêu cầu trên giây (RPS).
Khả năng sẵn sàng cao đề cập đến hệ thống được thiết kế để hoạt động liên tục mà không bị gián đoạn trong thời gian dài, thường sử dụng các chiến lược dự phòng và chuyển đổi dự phòng.
Khả năng chịu lỗi là khả năng của hệ thống tiếp tục hoạt động bình thường ngay cả khi một hoặc nhiều thành phần bị lỗi.
Microservices là một phong cách kiến trúc trong đó hệ thống được chia thành các dịch vụ nhỏ, độc lập, giao tiếp với nhau qua API.
Trái ngược với microservices, kiến trúc đơn khối kết hợp tất cả các thành phần của một ứng dụng thành một chương trình liên kết chặt chẽ.
Cổng API là điểm vào cho các khách hàng truy cập nhiều dịch vụ vi mô, giúp đơn giản hóa việc giao tiếp giữa chúng.
Định lý CAP cho rằng một hệ thống phân tán chỉ có thể đảm bảo hai trong ba thuộc tính:
Tính nhất quán đảm bảo rằng mỗi yêu cầu đọc sẽ nhận được dữ liệu mới nhất sau khi có một yêu cầu ghi.
Khả năng chịu phân vùng đề cập đến khả năng của hệ thống tiếp tục hoạt động ngay cả khi mất liên lạc giữa các máy chủ.
Trong các hệ thống phân tán, nhất quán cuối cùng có nghĩa là tất cả các bản sao của dữ liệu sẽ trở nên nhất quán sau một khoảng thời gian, mặc dù không ngay lập tức.
ACID (Tính nguyên tử, Nhất quán, Cô lập, Bền vững) là tập hợp các thuộc tính đảm bảo các giao dịch trong cơ sở dữ liệu được xử lý một cách đáng tin cậy.
BASE (Khả năng sẵn sàng cơ bản, Trạng thái mềm, Nhất quán cuối cùng) là một sự thay thế cho ACID, thường được sử dụng trong các cơ sở dữ liệu NoSQL.
Giảm tải là một cơ chế sử dụng để giảm bớt khối lượng công việc trên hệ thống bằng cách loại bỏ hoặc ưu tiên các yêu cầu nhất định để duy trì sự ổn định.
Nhân bản là quá trình sao chép dữ liệu từ một vị trí sang một vị trí khác để cải thiện tính sẵn sàng và khả năng chịu lỗi.
Phân mảnh cơ sở dữ liệu là quá trình chia một cơ sở dữ liệu lớn thành các mảnh nhỏ hơn, dễ quản lý hơn được gọi là "shards".
NoSQL là loại cơ sở dữ liệu được thiết kế để xử lý khối lượng lớn dữ liệu không có cấu trúc, thường linh hoạt hơn các cơ sở dữ liệu quan hệ truyền thống.
SQL là ngôn ngữ tiêu chuẩn dùng để tương tác với cơ sở dữ liệu quan hệ, chẳng hạn như truy vấn và thay đổi dữ liệu có cấu trúc.
Trong mô hình này, máy chủ chủ xử lý tất cả các yêu cầu ghi, trong khi các máy chủ tớ sao chép dữ liệu từ chủ và phục vụ các yêu cầu đọc.
Bầu chọn lãnh đạo là quá trình trong các hệ thống phân tán mà các nút đồng ý chọn một nút duy nhất để đóng vai trò lãnh đạo cho việc điều phối.
Nhịp đập là các tín hiệu định kỳ được gửi giữa các nút để xác nhận rằng chúng vẫn hoạt động và đang hoạt động tốt.
Pub/Sub là mô hình nhắn tin mà người gửi phát hành các thông báo mà không biết người nhận, và người nhận đăng ký nhận các chủ đề thông báo cụ thể.
Hàng đợi tin nhắn là một dạng giao tiếp không đồng bộ, nơi các thông báo được lưu trữ trong hàng đợi và xử lý theo thứ tự vào trước ra trước (FIFO).
Giới hạn tần suất kiểm soát số lượng yêu cầu mà một khách hàng có thể gửi đến dịch vụ, ngăn ngừa lạm dụng và đảm bảo tính ổn định.
Mẫu ngắt mạch ngăn chặn hệ thống cố gắng thực hiện một hoạt động có khả năng thất bại, cho phép thời gian phục hồi.
CDN là một mạng lưới các máy chủ phân tán cung cấp nội dung cho người dùng dựa trên vị trí địa lý của họ, giúp cải thiện thời gian tải.
DDoS là cuộc tấn công khi nhiều hệ thống làm ngập băng thông hoặc tài nguyên của một hệ thống mục tiêu, làm cho nó không thể phục vụ người dùng.
Điều chỉnh tốc độ kiểm soát lưu lượng truy cập mà hệ thống gửi hoặc nhận, ngăn chặn việc quá tải bằng cách làm chậm hoặc từ chối các yêu cầu quá mức.
Tính đồng nhất đảm bảo rằng việc thực hiện cùng một thao tác nhiều lần sẽ có hiệu quả giống như khi thực hiện một lần duy nhất, thường rất quan trọng trong các API.
Khám phá dịch vụ cho phép các hệ thống tự động phát hiện vị trí của các dịch vụ bên trong mạng phân tán.
Độ trễ đề cập đến sự chậm trễ trong việc xử lý một yêu cầu đơn lẻ, trong khi thông lượng đo lường có bao nhiêu yêu cầu có thể được xử lý trong một khoảng thời gian nhất định.
SLA là một hợp đồng chính thức giữa nhà cung cấp dịch vụ và khách hàng, xác định hiệu suất và tính sẵn sàng mong đợi.
Phân vùng dữ liệu là quá trình chia một tập dữ liệu lớn thành các phần nhỏ hơn để cải thiện khả năng quản lý và hiệu suất.
Trong hệ thống phân tán, quorum là số lượng tối thiểu các nút cần đồng ý cho một quyết định để nó được chấp nhận.
Độ trễ sao chép xảy ra khi có sự chậm trễ giữa việc ghi dữ liệu vào máy chủ chính và việc sao chép dữ liệu đó sang các máy chủ phụ.
Các mô hình khác nhau (ví dụ: Nhất quán mạnh, Nhất quán cuối cùng) định nghĩa cách dữ liệu được truy cập và cập nhật trong các hệ thống phân tán.
Tính nhất quán mạnh đảm bảo rằng sau khi thực hiện thao tác ghi, bất kỳ thao tác đọc nào sau đó đều sẽ trả về dữ liệu đã được cập nhật.
Thuật toán đồng thuận (ví dụ: Paxos, Raft) được sử dụng để đạt được sự đồng thuận về một giá trị dữ liệu duy nhất giữa các hệ thống phân tán.
2PC là một thuật toán phân tán đảm bảo rằng tất cả các bên tham gia vào một giao dịch hoặc là sẽ cam kết thay đổi của họ, hoặc hủy bỏ nó để duy trì tính nhất quán.
Zookeeper là một dịch vụ điều phối phân tán dành cho các ứng dụng phân tán, cung cấp các chức năng như bầu chọn lãnh đạo và quản lý cấu hình.
Các thuật toán khác nhau (ví dụ: Token Bucket, Leaky Bucket) được sử dụng để thực hiện giới hạn tần suất và quản lý lưu lượng truy cập.
Hồ dữ liệu là một kho lưu trữ tập trung lưu trữ lượng lớn dữ liệu thô ở định dạng gốc của nó cho đến khi cần xử lý.
Xử lý theo lô liên quan đến việc xử lý một lượng lớn dữ liệu cùng một lúc, thường diễn ra sau một khoảng thời gian nhất định, chẳng hạn như vào ban đêm.
Xử lý dòng dữ liệu cho phép phân tích dữ liệu liên tục, theo thời gian thực, nơi dữ liệu được xử lý ngay khi nó đến.
Tự động mở rộng điều chỉnh tự động số lượng tài nguyên được phân bổ cho một dịch vụ dựa trên tải hiện tại.
Tính đàn hồi đề cập đến khả năng của hệ thống mở rộng hoặc thu hẹp dựa trên nhu cầu.
Đóng gói container đóng gói một ứng dụng và các phần phụ thuộc của nó vào một container duy nhất, cho phép nó chạy ổn định trên nhiều môi trường khác nhau (ví dụ: Docker).
Việc hiểu rõ các thuật ngữ thiết kế hệ thống quan trọng này có thể giúp bạn cải thiện khả năng thiết kế và quản lý các hệ thống lớn. Cho dù bạn chỉ mới bắt đầu hay đang ôn tập lại, việc nắm vững những thuật ngữ này sẽ giúp bạn làm việc hiệu quả hơn.
Các bài viết mới nhất
Hydration trong React
Hydration trong React đóng vai trò quan trọng trong việc hiển thị nội dung phía máy chủ trên phía client. Trong bài viết này, chúng ta sẽ tìm hiểu...
13/02/2025
Mẹo truy cập các trang web bị chặn mà không cần sử dụng VPN
Bạn muốn truy cập một trang web (chẳng hạn như Steam, Medium, Tawkto…) nhưng gặp phải thông báo "trang web này bị chặn"? Đừng lo, bạn không nhất thiết phải dùng VPN để vượt qua.
07/02/2025
Tìm hiểu về Headless CMS và CMS truyền thống
Hệ thống quản lý nội dung (CMS) không còn là khái niệm xa lạ với những ai làm việc trong lĩnh vực phát triển web...
05/02/2025