维护应用程序服务器或数据库中的状态?

dea*_*mon 5 java session state ejb application-server

REST提倡在服务器上没有客户端状态的Web应用程序.着名的购物车示例被转换为通常驻留在数据库中的资源.

我想知道将数据库用于那种数据是否是一个好习惯,因为数据库已经成为许多应用程序的瓶颈.使用有状态企业java bean不是更好吗?应用程序服务器的设计考虑到了clustring.

这两种方法有哪些优缺点?

AJ.*_*AJ. 3

仅当满足以下条件时,在应用程序服务器上存储会话才有效:

  • 您的客户端始终连接到同一应用程序服务器(也称为“会话亲和力”)
  • 您的应用程序集群节点都使用公共安装点(nfs 等)来假脱机会话

如果不能保证您的客户端始终连接到集群中的同一应用程序节点,则可以将会话存储在中央数据库和/或 EJB 中。

另一种需要考虑的方法是使用memcached等服务。这在任何一种情况下都有效。