REST提倡服务器上没有客户端状态的web应用程序。著名的购物车示例被转换为通常驻留在数据库中的资源。
我想知道使用数据库存储此类数据是否是一种好的做法,因为数据库已经成为许多应用程序的瓶颈。使用有状态的企业java bean不是更好吗?应用程序服务器在设计时考虑到了clustring。
这两种方法的优缺点是什么?
发布于 2010-01-27 05:47:17
只有在以下情况下,才能在应用程序服务器上存储会话:
会话和您的客户端总是连接到同一个应用服务器(也称为“
如果不能保证客户端始终连接到集群中的同一应用程序节点,则在中央数据库和/或EJB中存储会话将会起作用。
另一种需要考虑的方法是使用诸如memcached之类的服务。这在任何一种情况下都可以工作。
发布于 2010-01-27 05:47:17
一般而言:
数据库
的“粘性”sessions
内存中(非分布式有状态bean)
如果应用程序/服务器重新启动retrieval
您的选择将完全取决于您的应用程序要求和环境。在所有条件相同的情况下,我更喜欢数据库解决方案,因为它具有负载平衡和可靠性方面的好处,但在许多情况下,这很容易被夸大。
发布于 2010-01-27 05:47:58
当你的应用服务器死掉时会发生什么。会话状态是否仍然重要?去找一个数据库。
你有更多的会话状态,那么你的服务器可以处理所有并发用户吗?将数据移动到数据库中,只提取当前真正需要的数据,这可能是一种解决方案。
你的应用是集群的吗?如果是这样,中央数据库将确保sessiondata始终可用。
否则:只需将其存储在会话中。
您是否有极端的伸缩要求(例如堆栈溢出或流量更大的站点)?找到一个不使用数据库的方法。
确实,数据库常常是瓶颈。但是,一个正确设置的数据库应该可以很好地处理几个字节的会话数据。更复杂的数据和查询是以性能为代价的。
https://stackoverflow.com/questions/2142856
复制相似问题