- vừa được xem lúc

System Design: Scaling and Distributed System

0 0 17

Người đăng: Thái Thanh Hải

Theo Viblo Asia

Scalling

Scaling là gì?

Mở rộng quy mô là tăng tài nguyên và hiệu suất với việc tăng tải và lưu lượng truy cập hệ thống hiện có mà không ảnh hưởng đến độ phức tạp.

Ví dụ: chúng tôi đã thiết kế một hệ thống cho 2000 yêu cầu mỗi phút, và hệ thống của chúng tôi đang chạy tốt, nhưng chúng tôi cần mở rộng hoạt động kinh doanh và cần xử lý nhiều yêu cầu hơn trong cùng một thời điểm hoặc bất cứ lúc nào. Bây giờ, chúng tôi sẽ cần nhiều tài nguyên hơn để xử lý tất cả các yêu cầu và sức mạnh tính toán. Bây giờ, giả sử chúng ta có thể đạt được 10000 request mỗi phút

Mở rộng quy mô là cần thiết để tăng hệ thống và giải quyết vấn đề hiện tại ở quy mô lớn hơn, vì vậy chúng ta nên thiết kế hệ thống của mình để mở rộng quy mô hệ thống của chúng ta ở quy mô lớn hơn bất cứ khi nào cần thiết Tải sẽ tăng lên vào bất kỳ thời điểm nào, vì vậy chúng ta cần đủ tài nguyên để xử lý tải ngày càng tăng Hệ thống không nên quá phức tạp để có thể dễ dàng mở rộng quy mô tại bất kỳ thời điểm nào Hiệu suất phải luôn được tăng lên với khả năng mở rộng

Các loại scaling

Có hai loại mở rộng là mở rộng theo chiều ngang và mở rộng theo chiều dọc

Mở rộng theo chiều dọc -Tăng khả năng của cùng một resource để đáp ứng nhu cầu và tối đa hóa thông lượng được gọi là mở rộng theo chiều dọc

Ví dụ: giả sử kiến trúc hiện tại của bạn xử lý 1000 yêu cầu mỗi giây, nhưng tải tăng trên trang web và hệ thống của chúng tôi có thể xử lý tải tăng bằng cách tác động đến cấu hình hoặc tăng dung lượng lưu trữ, thêm các phương pháp nhanh để tăng sức mạnh tính toán và tăng hiệu suất, đây là một ví dụ về mở rộng theo chiều dọc

Mở rộng theo chiều ngang - Tăng số lượng tài nguyên toàn diện để phục vụ nhu cầu mở rộng quy mô của hệ thống tăng lưu lượng/tải

Ví dụ: giả sử hệ thống của bạn có thể xử lý lượng tải tăng lên, nhưng cơ sở dữ liệu không thể xử lý tất cả các yêu cầu này ở một máy chủ. Vì vậy, hệ thống tăng thông lượng nhưng chúng tôi không thể phục vụ nhiều yêu cầu hơn do các hạn chế.

Hệ thống phân tán (distributed system)

Hệ thống phân tán là một hệ thống với các phân đoạn khác nhau nằm trên nhiều máy nhằm truyền đạt và tạo điều kiện thuận lợi cho các hoạt động hiển thị dưới dạng một hệ thống duy nhất cho người dùng cuối

Mục tiêu chính của một hệ thống phân tán là người dùng (và ứng dụng) của nó có thể truy cập và chia sẻ tài nguyên từ xa một cách dễ dàng. tức là, sẽ tiết kiệm chi phí hơn nhiều nếu chia sẻ một cơ sở lưu trữ cao cấp, đáng tin cậy duy nhất thay vì phải mua và duy trì bộ nhớ riêng cho từng người dùng.

Các tính năng chính của Hệ thống phân tán bao gồm:

  • Chia sẻ tài nguyên trong hệ thống phân tán: Chia sẻ tài nguyên có nghĩa là các tài nguyên hiện tại trong khung phân tán có thể được truy cập từ xa trên nhiều PC trong khung. Các PC trong các khung phân tán chia sẻ các tài nguyên như thiết bị (đĩa phần cứng, giảm chi phí và tiện lợi), phần mềm (bản ghi, cửa sổ) và chia sẻ thông tin để làm việc hợp tác và nhất quán
  • Transparency or Openness: Tính mở của khung phân tán hoặc phân tán về cơ bản được xác định bởi số lượng dịch vụ chia sẻ nội dung mới có thể được cung cấp cho khách hàng. tức là, Nó phụ thuộc vào một giao diện bị gián đoạn và giao diện phân tán để truy cập vào các tài sản được chia sẻ
  • Tính đồng thời: Kiểm soát đồng thời là một vấn đề quan trọng trong khung tập dữ liệu phân tán vì nó giải quyết các xung đột đọc-ghi và ghi-đọc. Điều này là do tính đồng thời cho phép nhiều trao đổi giao dịch thực hiện mọi lúc đến mức thông tin bị thao túng vẫn ở trạng thái đáng tin cậy
  • Khả năng mở rộng: là thuộc tính của một khung để giải quyết công việc ngày càng tăng bằng cách thêm nội dung vào khung. Một khuôn khổ, doanh nghiệp hoặc chương trình được miêu tả là có thể mở rộng sẽ có lợi ích vì nó linh hoạt hơn đối với khách hàng hoặc nhu cầu hoặc yêu cầu luôn thay đổi của khách hàng. Khả năng mở rộng là một điểm quan trọng trong hệ thống phân tán. Nó mô tả khả năng thay đổi dần dần cấu hình của khung bằng cách thay đổi các nội dung có thể truy cập và kỹ thuật lập kế hoạch. Khả năng mở rộng được phân lập thành hai góc độ: phần cứng và phần mềm.
  • Khả năng chịu lỗi: Khả năng chịu lỗi ngụ ý khả năng của một khung (PC, tổ chức, nhóm đám mây, v.v.) để tiếp tục hoạt động mà không bị can thiệp khi ít nhất một trong các bộ phận của nó bị lỗi. Các hệ thống có khả năng chịu lỗi sử dụng các bộ phận gia cố thay thế một cách tự nhiên các bộ phận và phân đoạn bị phá hủy, đảm bảo hoạt động trơn tru. Do đó, chúng tôi cần tăng tính khả dụng của các dịch vụ để làm cho hệ thống của chúng tôi có khả năng chịu lỗi tốt hơn.
  • Transparency: Tính minh bạch là một thuộc tính quan trọng của các khung phân tán, vì nó làm cho hoạt động của chúng, theo ý kiến ​​của khách hàng, trở nên thân thiện hơn, đơn giản hơn hoặc đơn giản là minh bạch. Khách hàng không nên biết về khu vực hoặc vị trí của chính quyền và việc trao đổi từ máy cục bộ sang máy ở xa phải minh bạch đối với họ.

Bình luận

Bài viết tương tự

- vừa được xem lúc

React hooks: Sự khác nhau giữa useMemo và useCallback

Thư viện React cung cấp 2 hook được build sẵn giúp chúng ta tối ưu hoá hiệu suất của app: useMemo và useCallback. Ở lần load đầu tiên, thoạt nhìn có vẻ như cách hoạt động của chúng khá giống nhau, vì

0 0 27

- vừa được xem lúc

6 tip hữu ích cho frontend có thể bạn chưa biết

Hôm nay mình sẽ chia sẻ một số tip hữu ích cho CSS, Html, Javascript. .

0 0 26

- vừa được xem lúc

Tổng quan về Active Directory trên Windows Server

I. Tổng quan:. 1) Active Directory là gì:. .

0 0 118

- vừa được xem lúc

Tổng hợp bài tập ôn thi ISTQB ADVANCED

❗ Học ISTQB advanced level để giúp bạn mở rộng thêm các kỹ năng mới trong test, có kinh nghiệm và chiến thuật thông minh trong test, chủ động xử lý các vấn đề trước khi nó xảy ra, test hiệu quả hơn. ✔

0 0 20

- vừa được xem lúc

DevTestOps xu hướng Tester nên biết

Khi nói đến chúng ta đều biết tới Manual testing và Automation testing. Ở hầu hết các quy trình sản xuất phần mềm, các Tester thường tham gia vào những công đoạn sau, làm hạn chế những hiệu quả mà Te

0 0 22

- vừa được xem lúc

Một số lưu ý trong automation test khi xác định elements

Khi thực hiện automation test trên web, các trường hợp thường gặp phải khi bắt element (các phần tử trên trang web) bao gồm:. 1.

0 0 21