专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能WEB开发

关于购物车的存储有关问题

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
关于购物车的存储问题
面试官问到:在服务器集群环境下,如果用户向购物车中放了一些商品,这些商品应该保存到哪里?

我当时心里盘算了常规的解决方案,但是最终给出的答复是:保存到缓存服务器(例如memcached)中。
不知道大家是咋处理的?我先不说我的解决方案,最后再跟大家分享。
------解决方案--------------------
非集群一般存在cookie里面,集群应该存到session里面吧?
------解决方案--------------------
放到session当中比较合适。。楼上说的很对..
------解决方案--------------------
Cookie其实可以应对集群或非集群,主要缺点是:容量。

我的话,要先问问两个问题:
1、购物车所服务的用户是否必须为登录用户?
2、该购物车中的货品,如果最终没购买或取消,下次登录还是否存在?
------解决方案--------------------
引用:
Cookie其实可以应对集群或非集群,主要缺点是:容量。

我的话,要先问问两个问题:
1、购物车所服务的用户是否必须为登录用户?
2、该购物车中的货品,如果最终没购买或取消,下次登录还是否存在?

如果数据量不大的话,好像确实是用cookie好些。这样不存在集群服务器间的同步问题。而且结束会话后,新开会话购物车仍然存在。
------解决方案--------------------
购物车中的数据完全可以保存到数据库中,对用户来说保存一个月,并且历史购物车数据可以为将来做数据分析
------解决方案--------------------
reset 跟信息存哪里没有关系 。
reset 是有http幂等概念。 就是把一个连接看成是一个资源   重复访问一个资源  返回的数据保持不变。属于幂等 
在来说说你的这个/cart/2543
如果你熟悉mvc的话 很明显看得出 这个url的结构  cart 为action  2543为参数  比如ID
其实这个也就等同于 http://xxxx.com/cart.aspx?id=2543    只是reset的url风格都是以/cart/2543这种形式表现的。

------解决方案--------------------
引用:
客户端直接发送一个/cart/2543这样的url,就能获取到购物车里的商品信息了。
这个又是如何实现的呢?有没有具体实现过(rest风格的)?


rest就是个协议风格。

这类实现基本上是用的 内存缓存服务,并可能配置二级磁盘缓存。存储的内容可以直接就是JSON串 或 HTML片段。

机制就比较灵活了,规模小的话,比如可以用 Nginx 直接做本地磁盘访问,然后用内存去虚拟本地磁盘;规模大的话,可以基于Nginx做二次开发,直接访问MemCache等。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: