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



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

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

但是读完本章后,我不明白什么是无状态服务器。如果服务器保持会话状态,它怎么可能是无状态的?

Quora有一个很好的定义:

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

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

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

最新更新