Hãy cùng xem sự khác biệt giữa hệ thống stateless và stateful.
Chúng ta sẽ đề cập đến các nội dung sau:
- Hệ thống stateless
- Ví dụ
- Hệ thống stateful
- Ví dụ
- Một số quan sát thú vị
- Lợi ích của hệ thống stateless so với hệ thống stateful
Chúng ta có thể nói rằng một hệ thống thuộc vào một trong hai loại sau:
- Hệ thống stateless
- Hệ thống stateful
Hệ thống stateless (Stateless system)
Một hệ thống stateless không duy trì bất kỳ trạng thái nào về những gì đã xảy ra trong quá khứ và thực hiện các chức năng của nó hoàn toàn dựa trên các đầu vào mà chúng ta cung cấp.
Ví dụ
Một ví dụ đơn giản về hệ thống stateless là hệ thống nhận vào một tập các số, tính giá trị lớn nhất trong số đó và trả về kết quả. Các đầu vào này có thể là trực tiếp hoặc gián tiếp. Đầu vào trực tiếp là các đầu vào được bao gồm trong yêu cầu, trong khi đầu vào gián tiếp là các đầu vào có thể được nhận từ các hệ thống khác để hoàn thành yêu cầu.
Hãy tưởng tượng một dịch vụ tính giá của một sản phẩm cụ thể bằng cách lấy giá ban đầu và các chương trình giảm giá hiện có từ một số dịch vụ khác, sau đó thực hiện các phép tính cần thiết với dữ liệu này. Dịch vụ này vẫn là một hệ thống stateless.

Stateless systems
Hệ thống stateful (Stateful systems)
Hệ thống stateful chịu trách nhiệm duy trì và thay đổi trạng thái. Kết quả của chúng phụ thuộc vào trạng thái này.
Ví dụ
Hãy tưởng tượng một hệ thống lưu trữ tuổi của tất cả nhân viên trong một công ty, và chúng ta có thể hỏi hệ thống về độ tuổi lớn nhất. Hệ thống này là stateful vì kết quả phụ thuộc vào những nhân viên đã được đăng ký trong hệ thống.

Some interesting observations – Một số quan sát thú vị
- Các hệ thống stateful rất hữu ích trong thực tế vì máy tính có khả năng lưu trữ và xử lý dữ liệu tốt hơn con người rất nhiều.
- Việc duy trì trạng thái đi kèm với độ phức tạp bổ sung. Ví dụ, chúng ta phải quyết định cách lưu trữ và xử lý dữ liệu sao cho hiệu quả nhất, cách thực hiện sao lưu, v.v.
- Do đó, thông thường việc thiết kế một kiến trúc có ranh giới rõ ràng giữa các thành phần stateless (thực hiện các chức năng nghiệp vụ) và các thành phần stateful (xử lý dữ liệu) là một lựa chọn khôn ngoan.
Benefits of stateless systems over stateful systems – Lợi ích của hệ thống stateless so với hệ thống stateful
Các hệ thống phân tán stateless dễ thiết kế, xây dựng và mở rộng hơn rất nhiều so với các hệ thống stateful.
Lý do chính là chúng ta xem tất cả các nút (ví dụ: máy chủ) trong một hệ thống stateless là giống hệt nhau. Điều này giúp việc cân bằng lưu lượng giữa chúng trở nên dễ dàng hơn, cũng như việc mở rộng bằng cách thêm hoặc loại bỏ máy chủ.
Ngược lại, các hệ thống stateful đặt ra nhiều thách thức hơn. Do các nút khác nhau có thể nắm giữ các phần dữ liệu khác nhau, chúng đòi hỏi thêm công sức xử lý. Hệ thống cần phải định tuyến lưu lượng đến đúng nơi và đảm bảo rằng mỗi thực thể luôn đồng bộ với các thực thể khác.
Vì vậy, một số ví dụ trong khóa học này sẽ sử dụng các hệ thống stateless. Tuy nhiên, những bài toán thách thức nhất mà chúng ta đề cập trong khóa học chủ yếu liên quan đến các hệ thống stateful.