1
miser 2020-11-05 12:01:39 +08:00
该存 DB 存 DB,该缓存的缓存,该 redis 的 redis,session 本身就是一种内存数据,只是把这个数据从单独服务器一道了一个大的集群而已
|
2
lrvinye 2020-11-05 15:36:02 +08:00
token,关键词 JWT,不过有时效性
|
3
opengps 2020-11-05 16:20:25 +08:00
session 要集中共享到第三方,尽量避免每台机器存自己的用户会话状态,不然同一用户产生的连接过来之后,不一定实际是哪台后端机器承载,会出现丢失会话的问题
集群设计的系统,一般都会有类似的要求。单独搞一个“会话状态服务”,比如存到 redis,存到数据库等等 如果实在是没设计成无状态,那就只能靠负载均衡的“改写 cookie”这种方案来实现多台机器组成集群了 |
4
acmore 2020-11-05 17:04:19 +08:00
无状态不是服务器真的不保存状态,而是客户端可以通过凭证在无感知的情况下从任何一台机器请求都能得到一样的结果。Session 不大的话每次直接带在 Request Body 中也未尝不可,我就见过很多服务把一堆状态数据塞在 Jwt 的 Claims 中来回倒腾的。Session 大的话就放在 Redis 集群,随用随拿。
|
5
xuanbg 2020-11-05 17:31:13 +08:00
对的,不要了。请求头带一个 token 就完了。
不过,这个和 session 并没有什么本质区别。只不过分布式系统都交给一个统一的验证服务去做用户身份和权限的验证罢了。 |