18 concept trong thiết kế hệ thống mà các kỹ sư và các ứng viên cần phải nắm vững

Để trở thành người thiết kế hệ thống giỏi, cơ bản các kỹ sư (system admin, system design) phải hiểu sâu về các khái niệm nền tảng như: Load Balancing, Caching, Partitioning, Replication, Databases, and Proxies

Để trở thành người thiết kế hệ thống giỏi, cơ bản các kỹ sư (system admin, system design) phải hiểu sâu về các khái niệm nền tảng như: Load BalancingCachingPartitioningReplicationDatabases, and Proxies

18 concept trong thiết kế hệ thống mà các kỹ sư và các ứng viên cần phải nắm vững

Dựa trên kinh nghiệm của bản thân, tôi đã xác định được 18 khái niệm chính có thể cải thiện đáng kể khả năng giải quyết các vấn đề thiết kế hệ thống của bạn. Những khái niệm này bao gồm hiểu được sự phức tạp của API gateway, nắm vững các kỹ thuật cân bằng tải, nắm bắt được tầm quan trọng của CDN và đánh giá cao vai trò của bộ nhớ đệm trong các hệ thống phân tán hiện đại. Đến cuối blog này, bạn sẽ hiểu toàn diện về những ý tưởng thiết yếu này và tự tin áp dụng chúng trong cuộc phỏng vấn cũng như trong công việc của mình tiếp.

Hãy xem hình ảnh nổi bật bên trên để hiểu rõ hơn về các thành phần chính có thể liên quan đến bất kỳ thiết kế hệ thống nào. Lưu ý đến mẫu tổng thể này, chúng ta sẽ thảo luận về 18 concept thiết kế hệ thống thiết yếu. Dưới đây là một mô tả ngắn gọn về mỗi khái niệm

1. Domain Name System (DNS)

Hệ thống tên miền (DNS) đóng vai trò là thành phần cơ bản của cơ sở hạ tầng internet, phân giải các tên miền thân thiện với người dùng thành địa chỉ IP tương ứng. Nó hoạt động như một danh bạ cho internet, cho phép người dùng truy cập các trang web và dịch vụ bằng cách nhập các tên miền dễ nhớ, chẳng hạn như https://vntts.vn, thay vì nhập địa chỉ IP “180.148.1.201 “ mà các máy tính sử dụng để nhận dạng lẫn nhau.

Khi bạn nhập một tên miền vào trình duyệt web của mình, DNS chịu trách nhiệm tìm địa chỉ IP được liên kết và chuyển yêu cầu của bạn đến máy chủ thích hợp. Quá trình này bắt đầu với việc máy tính của bạn gửi truy vấn đến trình phân giải đệ quy, sau đó tìm kiếm một loạt máy chủ DNS, bắt đầu bằng máy chủ gốc (gọi là root server), tiếp theo là máy chủ Tên miền cấp cao nhất (TLD) và cuối cùng là máy chủ tên có thẩm quyền. Khi địa chỉ IP được định vị, trình phân giải đệ quy sẽ trả nó về máy tính của bạn, cho phép trình duyệt của bạn thiết lập kết nối với máy chủ đích và truy cập nội dung mong muốn.

2. Load Balancer

Load Balancer gọi là bộ cân bằng tải là một thiết bị mạng hoặc phần mềm được thiết kế để phân phối lưu lượng truy cập đến trên nhiều máy chủ, đảm bảo sử dụng tài nguyên tối ưu, giảm độ trễ và duy trì tính khả dụng cao. Nó đóng một vai trò quan trọng trong việc mở rộng ứng dụng và quản lý hiệu quả khối lượng xử lý của máy chủ, đặc biệt là trong các tình huống khi lưu lượng truy cập tăng đột ngột hoặc phân phối yêu cầu không đồng đều giữa các máy chủ.

Bộ cân bằng tải sử dụng các thuật toán khác nhau để xác định phân phối lưu lượng truy cập đến. Một số thuật toán phổ biến bao gồm:

  • Round Robin: Các yêu cầu được phân phối tuần tự và đồng đều trên tất cả các máy chủ có sẵn theo chu kỳ.
  • Least Connections (ít kết nối nhất): Bộ cân bằng tải gửi các yêu cầu cho máy chủ có ít kết nối hoạt động nhất, ưu tiên xử lý cho các máy chủ ít tải nhất.
  • IP Hash: Địa chỉ IP của máy khách được băm và giá trị kết quả được sử dụng để xác định máy chủ nào sẽ chuyển yêu cầu đến. Phương pháp này đảm bảo rằng các yêu cầu của một máy khách cụ thể được định tuyến nhất quán đến cùng một máy chủ, giúp duy trì tính bền vững của phiên.

3. API Gateway

API gateway đóng vai trò là máy chủ hoặc dịch vụ có chức năng trung gian giữa ứng dụng khách bên ngoài và microservices bên trong hoặc dịch vụ backend dựa trên API của một ứng dụng. Nó là một thành phần quan trọng trong các kiến trúc hiện đại, đặc biệt là trong các hệ thống dựa trên microservices, nơi nó hợp lý hóa quy trình giao tiếp và cung cấp một điểm vào duy nhất để khách hàng truy cập các dịch vụ khác nhau.

Các chức năng chính của Cổng API bao gồm:

  • Request Routing (định tuyến yêu cầu): API gateway hướng các yêu cầu API đến từ máy khách đến backend services hoặc microservice thích hợp, dựa trên các quy tắc và cấu hình được xác định trước.
  • Authentication and Authorization (xác thực và ủy quyền): API gateway quản lý xác thực và ủy quyền người dùng, đảm bảo rằng chỉ những khách hàng được ủy quyền mới có thể truy cập dịch vụ. Nó xác minh các khóa API, tokens hoặc thông tin xác thực khác trước khi định tuyến các yêu cầu đến các backend services.
  • Rate Limiting and Throttling: Để bảo vệ các backend services quá tải hoặc lạm dụng, API gatewaythực thi các giới hạn tốc độ hoặc điều tiết các yêu cầu từ khách hàng theo các chính sách được xác định trước.
  • Caching: Để giảm thiểu độ trễ và backend load, API gateway lưu trữ các phản hồi được sử dụng thường xuyên, phân phối chúng trực tiếp cho khách hàng mà không cần truy vấn các backend services.
  • Request and Response Transformation (chuyển đổi yêu cầu và phản hồi): API gateway có thể sửa đổi các yêu cầu và phản hồi, chẳng hạn như chuyển đổi định dạng dữ liệu, thêm hoặc xóa tiêu đề hoặc thay đổi tham số truy vấn để đảm bảo khả năng tương thích giữa máy khách và dịch vụ.

4. CDN

Mạng phân phối nội dung (CDN) là một mạng máy chủ phân tán lưu trữ và phân phối nội dung như hình ảnh, video, … tới người dùng từ các vị trí gần họ về mặt địa lý. CDN được thiết kế để nâng cao hiệu suất, tốc độ và độ tin cậy của việc phân phối nội dung tới người dùng cuối, bất kể vị trí của họ so với máy chủ gốc. Bến dưới là cách CDN hoạt động:

  • Khi người dùng yêu cầu nội dung từ một trang web hoặc ứng dụng, yêu cầu đó sẽ được chuyển đến máy chủ CDN gần nhất, còn được gọi là máy chủ biên (edge server).
  • Nếu máy chủ biên có nội dung được yêu cầu lưu vào bộ nhớ đệm, nó sẽ trực tiếp phân phát nội dung cho người dùng. Quá trình này giúp giảm độ trễ và cải thiện trải nghiệm người dùng khi nội dung truyền đi một khoảng cách ngắn hơn.
  • Nếu nội dung không được lưu trong bộ nhớ đệm trên máy chủ biên, thì CDN sẽ truy xuất nội dung đó từ máy chủ gốc hoặc một máy chủ CDN khác gần đó. Sau khi nội dung được tìm nạp, nó sẽ được lưu vào bộ đệm trên máy chủ biên và được phân phát cho người dùng.
  • Để đảm bảo nội dung luôn được cập nhật, CDN sẽ kiểm tra định kỳ máy chủ gốc để biết các thay đổi và cập nhật bộ đệm của nó cho phù hợp.

5. Forward Proxy vs. Reverse Proxy

Xem bài viết tại đây

6. Caching

Bộ nhớ cache là lớp lưu trữ tốc độ cao được đặt giữa ứng dụng và nguồn dữ liệu gốc như cơ sở dữ liệu, hệ thống tệp hoặc dịch vụ web từ xa. Khi một ứng dụng yêu cầu dữ liệu, bộ đệm sẽ được kiểm tra trước. Nếu dữ liệu có trong bộ đệm, nó sẽ được trả lại cho ứng dụng. Nếu không tìm thấy dữ liệu trong bộ đệm, dữ liệu sẽ được truy xuất từ nguồn ban đầu và lưu trong bộ đệm để sử dụng trong tương lai, sau đó được trả lại cho ứng dụng. Trong một hệ thống phân tán, bộ nhớ đệm có thể xảy ra ở nhiều vị trí, bao gồm máy khách, DNS, CDN, bộ cân bằng tải, API gateway, máy chủ, cơ sở dữ liệu, v.v.

7. Data Partitioning

Trong cơ sở dữ liệu, horizontal partitioning thường được gọi là sharding, đòi hỏi phải chia các hàng của bảng thành các bảng nhỏ hơn và lưu trữ chúng trên các máy chủ hoặc phiên bản cơ sở dữ liệu riêng biệt. Phương pháp này được sử dụng để phân phối tải cơ sở dữ liệu trên nhiều máy chủ, do đó nâng cao hiệu suất.

Ngược lại, vertical partitioning liên quan đến việc chia các cột của bảng thành các bảng riêng biệt. Kỹ thuật này nhằm mục đích giảm số lượng cột trong bảng và tăng hiệu suất của các truy vấn chỉ truy cập vào một số cột giới hạn.

8. Database Replication

Database replication là một phương pháp được sử dụng để duy trì nhiều bản sao của cùng một cơ sở dữ liệu trên nhiều máy chủ hoặc vị trí khác nhau. Mục tiêu chính của sao chép cơ sở dữ liệu là tăng cường tính khả dụng, dự phòng và khả năng chịu lỗi của dữ liệu, đảm bảo hệ thống vẫn hoạt động ngay cả khi gặp lỗi phần cứng hoặc các sự cố khác.

Trong cấu hình database replication, một máy chủ đóng vai trò là cơ sở dữ liệu chính (master), trong khi các máy chủ khác đóng vai trò là bản sao (slaver). Quá trình này liên quan đến việc đồng bộ hóa dữ liệu giữa cơ sở dữ liệu chính và các bản sao, đảm bảo tất cả đều có cùng thông tin cập nhật. Database replication cung cấp một số lợi thế, bao gồm:

  •  Improved Performance (cải thiện hiệu suất): Bằng cách phân phối các truy vấn đọc giữa nhiều bản sao, có thể giảm tải trên cơ sở dữ liệu chính, dẫn đến thời gian phản hồi truy vấn nhanh hơn.
  • High Availability  (tính sẵn sàng cao): Nếu cơ sở dữ liệu chính gặp lỗi hoặc ngừng hoạt động, các bản sao có thể tiếp tục cung cấp dữ liệu, đảm bảo quyền truy cập vào ứng dụng không bị gián đoạn.
  • Enhanced Data Protection (bảo vệ dữ liệu nâng cao): Duy trì nhiều bản sao của cơ sở dữ liệu trên các vị trí khác nhau giúp bảo vệ chống mất dữ liệu do lỗi phần cứng hoặc các thảm họa khác.
  • Load Balancing (cân bằng tải): Bản sao có thể xử lý các truy vấn đọc, cho phép phân phối tải tốt hơn và giảm áp lực tổng thể trên cơ sở dữ liệu chính.
  •  Improved Performance (cải thiện hiệu suất): Bằng cách phân phối các truy vấn đọc giữa nhiều bản sao, có thể giảm tải trên cơ sở dữ liệu chính, dẫn đến thời gian phản hồi truy vấn nhanh hơn.
  • High Availability  (tính sẵn sàng cao): Nếu cơ sở dữ liệu chính gặp lỗi hoặc ngừng hoạt động, các bản sao có thể tiếp tục cung cấp dữ liệu, đảm bảo quyền truy cập vào ứng dụng không bị gián đoạn.
  • Enhanced Data Protection (bảo vệ dữ liệu nâng cao): Duy trì nhiều bản sao của cơ sở dữ liệu trên các vị trí khác nhau giúp bảo vệ chống mất dữ liệu do lỗi phần cứng hoặc các thảm họa khác.
  • Load Balancing (cân bằng tải): Bản sao có thể xử lý các truy vấn đọc, cho phép phân phối tải tốt hơn và giảm áp lực tổng thể trên cơ sở dữ liệu chính.

9. Distributed Messaging Systems

Các hệ thống nhắn tin phân tán cung cấp một phương tiện đáng tin cậy, có thể mở rộng và chịu lỗi để trao đổi tin nhắn giữa nhiều ứng dụng, dịch vụ hoặc thành phần có thể phân tán về mặt địa lý. Các hệ thống này tạo điều kiện giao tiếp bằng cách tách rời các thành phần người gửi và người nhận, cho phép chúng phát triển và hoạt động độc lập. Các hệ thống nhắn tin phân tán đặc biệt có giá trị trong các hệ thống quy mô lớn hoặc phức tạp, giống như những hệ thống được thấy trong kiến trúc microservices hoặc môi trường máy tính phân tán. Ví dụ về các hệ thống này bao gồm Apache Kafka và RabbitMQ.

10. Microservices

Microservices đại diện cho một phong cách kiến trúc trong đó một ứng dụng được tổ chức dưới dạng tập hợp các dịch vụ nhỏ và có thể triển khai tự động. Mỗi microservice chịu trách nhiệm về một khía cạnh chức năng trong ứng dụng và giao tiếp với các microservice khác thông qua các API. Phương pháp này khác với kiến trúc nguyên khối thông thường, trong đó một ứng dụng được xây dựng như một đơn vị duy nhất, được liên kết chặt chẽ.

Các đặc điểm chính của microservice bao gồm:

  • Single Responsibility: Tuân thủ Nguyên tắc Single Responsibility, mỗi microservice tập trung vào một chức năng cụ thể, giúp các dịch vụ dễ hiểu, phát triển và bảo trì hơn.
  • Independence: Microservices có thể được phát triển, triển khai và mở rộng một cách độc lập, giúp tăng tính linh hoạt và nhanh nhẹn trong quá trình phát triển. Các nhóm có thể làm việc đồng thời trên nhiều dịch vụ khác nhau mà không ảnh hưởng đến toàn bộ hệ thống.
  • Decentralization: Thông thường, microservices được phân tán, với mỗi dịch vụ xử lý dữ liệu và logic nghiệp vụ của nó. Cách tiếp cận này thúc đẩy việc phân tách các mối quan tâm và trao quyền cho các nhóm đưa ra quyết định và lựa chọn công nghệ phù hợp với yêu cầu riêng của họ.
  • Communication: Các microservices tương tác với nhau bằng các giao thức như HTTP/REST, gRPC hoặc message queues. Điều này thúc đẩy khả năng tương tác và tạo điều kiện thuận lợi cho việc tích hợp các dịch vụ mới hoặc thay thế các dịch vụ hiện có.
  • Fault Tolerance: Vì các microservices là độc lập nên lỗi của một dịch vụ không nhất thiết dẫn đến sự sụp đổ của toàn bộ hệ thống, nâng cao khả năng phục hồi tổng thể của ứng dụng.

11. NoSQL Databases

NoSQL databases còn gọi “Not Only SQL” databases là cơ sở dữ liệu phi quan hệ được thiết kế để lưu trữ, quản lý và truy xuất dữ liệu phi cấu trúc hoặc bán cấu trúc. Chúng cung cấp giải pháp thay thế cho cơ sở dữ liệu quan hệ truyền thống, dựa trên dữ liệu có cấu trúc và lược đồ được xác định trước. Cơ sở dữ liệu NoSQL đã trở nên phổ biến nhờ tính linh hoạt, khả năng mở rộng và khả năng xử lý khối lượng dữ liệu lớn, khiến chúng rất phù hợp với các ứng dụng hiện đại, xử lý dữ liệu lớn và phân tích thời gian thực.

Cơ sở dữ liệu NoSQL có thể được phân loại thành bốn loại chính:

  • Document-Based: Các cơ sở dữ liệu này lưu trữ dữ liệu trong các cấu trúc giống như tài liệu, chẳng hạn như JSON hoặc BSON. Mỗi tài liệu là độc lập và có thể có cấu trúc độc đáo của riêng mình, làm cho chúng phù hợp để xử lý dữ liệu không đồng nhất. Ví dụ về cơ sở dữ liệu NoSQL dựa trên tài liệu bao gồm MongoDB và Couchbase.
  • Key-Value: Các cơ sở dữ liệu này lưu trữ dữ liệu dưới dạng các cặp khóa-giá trị, trong đó khóa đóng vai trò là mã định danh duy nhất và giá trị chứa dữ liệu được liên kết. Cơ sở dữ liệu khóa-giá trị có hiệu quả cao đối với các thao tác đọc và ghi đơn giản, đồng thời chúng có thể dễ dàng phân vùng và chia tỷ lệ theo chiều ngang. Ví dụ về cơ sở dữ liệu NoSQL khóa-giá trị bao gồm Redis và Amazon DynamoDB.
  • Column-Family: Các cơ sở dữ liệu này lưu trữ dữ liệu trong column families, là nhóm các cột có liên quan. Chúng được thiết kế để xử lý khối lượng công việc ghi nhiều và có hiệu quả cao để truy vấn dữ liệu bằng các phím hàng và cột đã biết. Ví dụ về cơ sở dữ liệu NoSQL column families bao gồm Apache Cassandra và HBase.
  • Graph-Based: Các cơ sở dữ liệu này được thiết kế để lưu trữ và truy vấn dữ liệu có mối quan hệ phức tạp và cấu trúc liên kết với nhau, chẳng hạn như mạng xã hội hoặc hệ thống đề xuất. Cơ sở dữ liệu đồ thị sử dụng các nút, cạnh và thuộc tính để biểu diễn và lưu trữ dữ liệu, giúp dễ dàng thực hiện các truy vấn dựa trên mối quan hệ và truyền tải phức tạp. Ví dụ về cơ sở dữ liệu NoSQL dựa trên biểu đồ bao gồm Neo4j và Amazon Neptune.

12. Database Index

Database indexes là cấu trúc dữ liệu giúp nâng cao tốc độ và hiệu quả của các hoạt động truy vấn trong cơ sở dữ liệu. Chúng hoạt động tương tự như một chỉ mục trong sách, cho phép hệ thống quản lý cơ sở dữ liệu (DBMS) nhanh chóng định vị dữ liệu được liên kết với một giá trị hoặc nhóm giá trị cụ thể mà không cần phải tìm kiếm qua từng hàng trong bảng. Bằng cách cung cấp một tuyến đường trực tiếp hơn đến dữ liệu mong muốn, các chỉ mục có thể giảm đáng kể thời gian cần thiết để truy xuất thông tin từ cơ sở dữ liệu.

Các chỉ mục thường được xây dựng trên một hoặc nhiều cột của bảng cơ sở dữ liệu. B-tree index là loại phổ biến nhất, tổ chức dữ liệu theo cấu trúc cây phân cấp, cho phép các thao tác tìm kiếm, chèn và xóa nhanh chóng. Các loại chỉ mục khác, chẳng hạn như chỉ mục bitmap và chỉ mục băm, cũng tồn tại, mỗi loại có các trường hợp sử dụng và lợi thế cụ thể của chúng.

Mặc dù các chỉ mục có thể nâng cao đáng kể hiệu suất truy vấn, nhưng chúng cũng liên quan đến một số sự đánh đổi nhất định:

  • Dung lượng lưu trữ: Các chỉ mục yêu cầu không gian lưu trữ bổ sung vì chúng tạo và duy trì các cấu trúc dữ liệu riêng biệt cùng với dữ liệu bảng gốc.
  •  Hiệu suất ghi: Khi dữ liệu được chèn, cập nhật hoặc xóa trong một bảng, các chỉ mục tương ứng cũng phải được cập nhật, điều này có thể làm chậm hoạt động ghi.

13. Distributed File Systems (DFS)

DFS là hệ thống lưu trữ được thiết kế để quản lý và cấp quyền truy cập vào tệp và thư mục trên nhiều máy chủ, nhiềunodes,… thường được phân phối trên hệ thống mạng. Chúng cho phép người dùng và ứng dụng truy cập và sửa đổi các tệp như thể chúng được đặt trên một hệ thống tệp cục bộ, mặc dù thực tế chúng được đặt trên các máy chủ từ xa khác nhau. Các hệ thống tệp phân tán thường được sử dụng trong các môi trường máy tính phân tán hoặc quy mô lớn để cung cấp khả năng chịu lỗi, tính sẵn sàng cao và hiệu suất nâng cao.

14. Notification System

Chúng được sử dụng để gửi thông báo hoặc cảnh báo cho người dùng, chẳng hạn như email, push notifications hoặc tin nhắn văn bản.

15. Full-text Search

Tìm kiếm toàn văn cho phép người dùng tìm kiếm các từ hoặc cụm từ cụ thể trong một ứng dụng hoặc trang web. Khi nhận được truy vấn của người dùng, ứng dụng hoặc trang web sẽ cung cấp kết quả phù hợp nhất. Để thực hiện điều này một cách nhanh chóng và hiệu quả, tìm kiếm toàn văn sử dụng một chỉ mục đảo ngược, một cấu trúc dữ liệu liên kết các từ hoặc cụm từ với các tài liệu mà chúng được tìm thấy. Elastic Search là một ví dụ về các hệ thống như vậy.

16. Distributed Coordination Services

Các dịch vụ điều phối phân tán là các hệ thống được thiết kế để điều chỉnh và đồng bộ hóa hành động của các ứng dụng, dịch vụ hoặc nodes phân tán theo cách đáng tin cậy, hiệu quả và có khả năng chịu lỗi. Chúng hỗ trợ duy trì tính nhất quán, xử lý đồng bộ hóa phân tán và giám sát cấu hình cũng như trạng thái của các thành phần khác nhau trong cài đặt phân tán. Các dịch vụ điều phối phân tán đặc biệt có giá trị trong các hệ thống quy mô lớn hoặc phức tạp như các dịch vụ gặp phải trong kiến trúc vi dịch vụ, môi trường điện toán phân tán hoặc cơ sở dữ liệu theo cụm. Apache ZooKeeper, etcd và Consul là những ví dụ về các dịch vụ như vậy.

17. Heartbeat

Trong môi trường phân tán, công việc/dữ liệu được phân phối giữa các máy chủ. Để định tuyến hiệu quả các yêu cầu trong thiết lập như vậy, các máy chủ cần biết những máy chủ nào khác là một phần của hệ thống. Hơn nữa, các máy chủ nên biết nếu các máy chủ khác còn sống hay là hoạt động. Trong một hệ thống phi tập trung, bất cứ khi nào có yêu cầu đến máy chủ, máy chủ đó phải có đủ thông tin để quyết định máy chủ nào chịu trách nhiệm xử lý yêu cầu đó. Điều này làm cho việc phát hiện kịp thời những máy chủ nào đang bị lỗi trở thành một nhiệm vụ quan trọng, đồng thời cho phép hệ thống thực hiện các hành động khắc phục và di chuyển dữ liệu/công việc sang một máy còn hoạt động tốt khác.

Để giải quyết vấn đề này, mỗi máy chủ sẽ định kỳ gửi thông báo tín hiệu heartbeat đến máy chủ giám sát trung tâm hoặc các máy chủ khác trong hệ thống để cho biết rằng nó vẫn còn sống và hoạt động.

Heartbeating là một trong những cơ chế phát hiện lỗi trong hệ thống phân tán. Nếu có một máy chủ trung tâm, tất cả các máy chủ sẽ gửi thông báo tín hiệu heartbeat đến nó theo định kỳ. Nếu không có máy chủ trung tâm, tất cả các máy chủ sẽ chọn ngẫu nhiên một nhóm máy chủ và gửi tín hiệu heartbeat cứ sau vài giây. Bằng cách này, nếu không nhận được tín hiệu heartbeat từ máy chủ trong một thời gian, hệ thống có thể nghi ngờ rằng máy chủ có thể đã bị lỗi. Nếu không có tín hiệu heartbeat trong khoảng thời gian chờ đã định cấu hình, hệ thống có thể kết luận rằng máy chủ không còn hoạt động nữa và ngừng gửi yêu cầu tới nó và bắt đầu thực hiện công việc thay thế.

18. Checksum

Trong một hệ thống phân tán, trong khi di chuyển dữ liệu giữa các thành phần, có thể dữ liệu được tìm nạp từ một nút có thể bị hỏng. Lỗi này có thể xảy ra do lỗi trong thiết bị lưu trữ, mạng, phần mềm, v.v. Làm thế nào một hệ thống phân tán có thể đảm bảo tính toàn vẹn của dữ liệu, để máy khách nhận được lỗi thay vì dữ liệu bị hỏng?

Để giải quyết vấn đề này, chúng ta tính toán checksum và lưu trữ nó cùng với dữ liệu.

Để tính tổng kiểm tra, một hàm băm mật mã như MD5, SHA-1, SHA-256 hoặc SHA-512 được sử dụng. Hàm băm lấy dữ liệu đầu vào và tạo ra một chuỗi (chứa các ký tự và số) có độ dài cố định; chuỗi này được gọi là checksum

Khi một hệ thống đang lưu trữ một số dữ liệu, nó sẽ tính toán checksum của dữ liệu và lưu trữ checksum cùng với dữ liệu. Khi một máy khách truy xuất dữ liệu, nó sẽ xác minh rằng dữ liệu mà nó nhận được từ máy chủ khớp với checksum được lưu trữ. Nếu không, thì client có thể chọn truy xuất dữ liệu đó từ một bản sao khác.

Tham khảo: sưu tầm

CÔNG TY TNHH GIẢI PHÁP VNTT (VNTTS) – Chuyên cung cấp các sản phẩm, giải pháp, dịch vụ chuyển đổi số cho doanh nghiệp.

  • Văn phòng TP.Hồ Chí Minh: Phòng 1908 & 1909, Tầng 19, Toà nhà Saigon Trade Center 
  • Văn phòng Bình Dương: Tầng trệt, Tòa nhà BBI, Đại học Quốc tế Miền Đông (EIU) 
  • Điện thoại: 0274.222.1012 
  • Email: chuyendoiso@vntts.vn 
  • https://vntts.vn
0 0 bỏ yếu
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
Xem tất cả bình lận
Scroll to Top