0

假设我们有一个面向性能的应用程序在集群中工作。它包含很多用户。众所周知,会话的复制很差,因此应用程序的可扩展性很差。当然最好的方法是将应用程序创建为无状态的。(节点之间没有序列化)但我的问题是:当我们决定将 HttpSession 保留在某些存储中时,例如 Redis 或 memcached ?

您认为将 HttpSession 保留在某个 nosql 实例中是个好主意吗?

谢谢

4

1 回答 1

1

内存数据库有两个主要缺点:

  1. 它们的容量仅限于服务器机器的 RAM(它们可以通过交换存储更多数据,但这几乎会破坏它们的目的)
  2. 当他们因为某种原因宕机时,所有数据都会丢失

所以问题是:你的会话数据有多重要?当您丢失用户的会话数据时,要么是因为您必须删除它以便为新会话腾出空间,要么是因为您必须重新启动数据库服务器,这意味着什么?他们是否只需要重新登录,还是会丢失有价值的数据?

请注意,还有 memcacheDB,它的工作方式与 memcached 一样(字面意思!它被设计为用作替代品),但备份磁盘上的所有数据。当数据丢失不可接受时,这是 Memcached 的一个很好的替代方案。

于 2013-01-17T15:33:10.823 回答