y*****e 发帖数: 712 | 1 在准备系统设计,越看越糊涂
REST的design pattern是尽量server不存放任何client state,所有的information都在
http request里,这样就少了很多server store session state的overhead, 这样可以
使web service scalable
另一方面我们需要sticky session, 如果一个用户短时间内send multiple requests,
我们查询同一个backend server,而不是用round robin去找server,需要把session
state放在server里,这不和stateless的宗旨冲突了吗? 怎么讲这个东西啊? | t*********r 发帖数: 387 | | b*****n 发帖数: 618 | 3 stateless你可以理解成没有persistent state。
首先,server到底是什么server要先搞明白,是web tier还是service tier。
另外,你这里说的sticky session需要把session state放在server里,如果指的是用
cache来提高response time和减轻backend server的压力,是完全没有问题的,单个
server可以cache一部分用户数据然后异步更新persistent state server。
这部分cache的内容并不是作为persistent state,只是用来加速和优化系统性能,丢
掉了也无所谓,所以你说的这两个不矛盾。 |
|