无状态服务器如何在服务器端保持会话状态?

时间:2019-09-27 13:25:15

标签: java session architecture state stateless

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

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

但是在阅读了本章之后,我不明白什么是无状态服务器。如果服务器保持会话状态,该如何将其变为无状态?

1 个答案:

答案 0 :(得分:5)

Quora有一个很好的定义:

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

含义:保留状态数据的不是 server 本身。它可以将其放入某个数据库中。然后,它可能会向客户端提供某种令牌,客户​​端可以在以后的呼叫中包括这些令牌。而 token 可使其他服务器从数据库中检索相应的数据。

关键点是:当然,信息需要存储在某个地方。但这不是服务器,而是所有无状态服务器都可以使用的基础架构。