java - 无状态服务器如何在服务器端保持 session 状态?

标签 java session architecture state stateless

我正在阅读 Marting Fowler 的名著企业应用程序架构模式以系统化我的知识。

我读过 Session and States 一章,我有点困惑。在本章的第一部分,作者建议使用无状态服务器来避免某些问题。然后作者说有时我们需要在服务器端保存一些数据——例如网店中的用户购物车。 但是要实现带状态的 session ,我们可以使用无状态服务器。然后作者描述了保存 session 状态的方法(客户端、服务器、数据库)

但是看了这一章我不明白什么是无状态服务器。如果保持 session 状态,服务器如何成为无状态的?

最佳答案

Quora有一个很好的定义:

无状态服务是一种不在应用程序服务器上存储任何数据的服务。它将数据读取或写入数据库,返回一个值(或不返回),之后,任务本身的任何信息都将被遗忘。

意思:不是服务器本身保存状态数据。它可以将其放入某个数据库中。然后,它可能会向客户端提供某种 token ,客户​​端可以将其包含在以后的调用中。该 token 使其他服务器能够从数据库中检索相应的数据。

关键点是:当然,信息需要存储在某处。但那个地方不是服务器,而是所有无状态服务器都可以访问的一些基础设施。

关于java - 无状态服务器如何在服务器端保持 session 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58135500/

相关文章:

mysql - 高效分类Mysql结构

c# - 域对象、POCO 和实体之间有什么区别?

java - EJBInvokerServlet/JMXInvokerServlet

java - 每次为相同的字符串值生成相同的盐

java - 如何存储 ArrayList<HashMap<String, String>>

Laravel 5.4 - 未根据请求设置 session 存储

asp.net - HTTPS 到 HTTP ASP 在 IIS Express 上共享 cookie 和 session

java - 在 Java 中将 bean 转换为 Json

session - tomcat/jboss session 存储

php - 使用基本授权作为中间件 PSR-7 PSR-15