các ứng dụng web không quốc tịch là rất cần thiết khi bạn bắt đầu có giao thông cao hơn.
Có thể có nhiều dữ liệu người dùng mà bạn không muốn lưu trữ ở phía máy khách vì lý do bảo mật chẳng hạn. Trong trường hợp này, bạn cần lưu trữ phía máy chủ. Bạn có thể sử dụng phiên mặc định của ứng dụng web nhưng nếu bạn có nhiều cá thể của ứng dụng, bạn sẽ cần đảm bảo rằng mỗi người dùng luôn được chuyển hướng đến cùng một cá thể.
Cân bằng tải thường có khả năng có 'phiên cố định' trong đó trình cân bằng tải một số cách biết máy chủ nào gửi yêu cầu của người dùng đến. Đây không phải là lý tưởng mặc dù, ví dụ nó có nghĩa là mỗi khi bạn khởi động lại ứng dụng web của bạn, tất cả người dùng kết nối sẽ mất phiên của họ.
Một cách tiếp cận tốt hơn là lưu trữ phiên phía sau máy chủ web trong một số loại lưu trữ dữ liệu, những ngày này có rất nhiều sản phẩm tuyệt vời có sẵn (redis, mongo, elasticsearch, memcached). Bằng cách này, các máy chủ web là không trạng thái nhưng bạn vẫn có trạng thái máy chủ trạng thái và tính khả dụng của trạng thái này có thể được quản lý bằng cách chọn thiết lập kho dữ liệu phù hợp. Những kho dữ liệu này thường có dư thừa lớn nên hầu như luôn có thể thay đổi ứng dụng web của bạn và thậm chí lưu trữ dữ liệu mà không ảnh hưởng đến người dùng.
Tôi thực sự không hiểu "vấn đề đồng thời" bạn có thể có trong ứng dụng web ... –
Giả sử bạn có hai người dùng trên trang web của mình cùng một lúc. Nếu cả hai đều gửi cùng một lúc, liệu có thể cả hai đều nhấn vào cơ sở dữ liệu của bạn hoặc một số dịch vụ khác và điều kiện chạy đua xảy ra sau đó? – samoz
Nhưng đó là một vấn đề cơ sở dữ liệu mặc dù; không liên quan gì đến việc bạn đang lưu trữ trạng thái trong ứng dụng web của mình hay không. Các cơ sở dữ liệu tuân thủ ACID (tức là tất cả các cơ sở dữ liệu quan hệ) được viết để xử lý các loại vấn đề này. –