关于集群中session共享理解的问题?

颖辉小居 发布于 2017/02/03 14:35
阅读 580
收藏 1

最近在研究集群和分布式的实现,感觉非常吃力。

集群是一套完整的系统部署到不同的服务器(tomcat)中,每个服务器中部署的程序都是一样的,通过nginx反向代理就可以根据权重把用户的请求转发到不同的的服务器中,同时实现了同一个用户在一次session会话有效期内的所有请求都会转发给同一个服务器。是不是这样就不需要考虑session共享了。我理解的对吗?

加载中
1
公孙二狗
公孙二狗

可以看看 spring-session-data-redis 这个插件,用 Redis 存储 session 实现集群,只需要配置 web.xml,不需要修改代码就能实现集群。

公孙二狗
公孙二狗
回复 @颖辉小居 : https://www.qtdebug.com/spring-security-6-cluster/ 和 SpringMVC 一起使用
颖辉小居
颖辉小居
是这样配置吗?http://blog.csdn.net/xiao__gui/article/details/52706243
颖辉小居
颖辉小居
回复 @公孙二狗 : 你好可以给我个示例或者正确的文章地址吗?我网上看了一个月了还是很晕
公孙二狗
公孙二狗
回复 @颖辉小居 : 分布式可以使用 RPC 实现
颖辉小居
颖辉小居
那么 请问分布式有什么解决办法呢?
1
a
anniweiya
spspring session
a
anniweiya
spring session或者jwt
1
m
mzmlx2009

但是这样容错就低了  一个服务器出问题了 其他服务器不好接管

http://blog.csdn.net/u010028869/article/details/50773174?ref=myread感觉这个不错

0
滔哥
滔哥

我碰到的业务量都比较小,可能没你的业务流量这么大,我的做法是,nginx根据用户hash来指向不同的服务器。 现在的做法是有台大内存的memcached服务器,然后所的应用session指向到这台机器,但比较担心这台机器宕机。以后加主从吧,目前跑了一两年,问题不大。

0
神秘萝卜
神秘萝卜

比较常用的就是

1.nginx根据用户hash

2.用缓存,redis,memcached等,最好主从

 

颖辉小居
颖辉小居
.nginx根据用户hash 这个是不是只适用于集群,如果分布式的tomcat(每个tomcat中的工程负责的服务都不一样)怎么办呢?
0
数组斯诺
数组斯诺

如果想要session在集群里共享,反向代理没法实现。tomcat只存储容器内应用产生的session,除非在在业务里进行url重写,才能让a容器的session让b容器访问,不推荐这样。

推荐,使用spring-session,通过楼上说的spring-session-data-redis,实现集群共享session。插一句,在高并发下通常不会使用session,集群一大了肯定高机率死锁,而是通过加密cookie管理会话

关于spring系列的分布式系统有个spring cloud,不过没接触过

公孙二狗
公孙二狗
据说淘宝开始的时候就是用 cookie 存储用户登陆信息的,后来访问量上来后就没这么用了,因为 cookie 太大,导致流量大增
返回顶部
顶部