各位老铁,nginx 做负载均衡 反代到 tomcat 后的用户 Session 同步 有什么成熟的好用的方案?
![]() | 1 uqf0663 2018-03-15 10:41:38 +08:00 ![]() 存 redis 里 |
2 autumnshine 2018-03-15 10:42:38 +08:00 spring session |
3 liwl 2018-03-15 10:44:20 +08:00 存 redis 里 |
4 linyinma 2018-03-15 10:53:40 +08:00 |
![]() | 5 fzleee 2018-03-15 10:54:56 +08:00 使用一致性哈希算法负载均衡,这样就可以避免 session 同步 |
![]() | 6 aricch OP |
![]() | 8 realityone 2018-03-15 11:00:52 +08:00 via iPhone 最简单加密存到 cookie 里 |
![]() | 9 af463419014 2018-03-15 11:03:18 +08:00 存 redis +1 |
![]() | 10 Moker 2018-03-15 11:09:08 +08:00 Reids 或者 JWT ? |
11 z1154505909 2018-03-15 11:14:26 +08:00 存 redis+2 |
![]() | 12 pathbox 2018-03-15 11:14:59 +08:00 via iPhone 用 ip hash 负载算法 或者就是用 redis 存 |
![]() | 13 wentx 2018-03-15 11:23:00 +08:00 存 redis +10086 |
![]() | 14 gouchaoer 2018-03-15 11:24:11 +08:00 ![]() 不可以用 ip hash,因为 ip 会变 |
![]() | 15 yy120345 2018-03-15 11:24:44 +08:00 redis |
![]() | 16 novacn 2018-03-15 11:27:59 +08:00 spring session |
![]() | 17 baiy 2018-03-15 11:32:28 +08:00 session 一致性架构设计实践 http://mp.weixin.qq.com/s/NnnqVrC9-Jekwy3Opmvy_w |
![]() | 18 aricch OP |
![]() | 19 q397064399 2018-03-15 11:36:27 +08:00 首推 Redis Spring 有相应的接口 一行代码都不用写,Redis 可以考虑购买 阿里云的 Redis 集群,避免宕机 |
20 nicevar 2018-03-15 11:37:07 +08:00 ![]() 关注一下,这个问题不是上面一堆人的一句存 redis 那么简单,实际情况很复杂,与业务上有很大的关系,比如请求是否是无标识单向的,一台 session 服务器宕机之后这部分用户处理问题,同步成本开销等等,楼主搞定了记得分享一下 |
![]() | 21 kenshin912 2018-03-15 11:38:09 +08:00 via iPhone ip_hash 或者 Redis |
![]() | 22 |
![]() | 23 TZ 2018-03-15 12:26:29 +08:00 看来都是用 redis 的 |
![]() | 24 binux 2018-03-15 12:27:44 +08:00 加密,存用户那 |
![]() | 25 WeeH9T 2018-03-15 12:32:23 +08:00 JWT |
![]() | 28 q397064399 2018-03-15 15:20:29 +08:00 @nicevar #20 https://mp.weixin.qq.com/s/NnnqVrC9-Jekwy3Opmvy_w 无标识单向,不明白是什么 请指教。 Session 服务器宕机? Redis 有集群,master 节点挂了 还有 slave,Redis 还有一致性 hash 可用性是完全可以保证的,后端存 Session 存 Token 基本上都是采取集中式的处理,, 这样 web 服务 可以水平扩展,但实际上 web 服务扩展 看不到什么卵用,, 之前的一个项目,压力全在 DB 上,即使水平扩展 web 服务 也是看不到什么卵用的, 搞 web 还是 把数据库搞明白,该填的 都得填了 |
![]() | 29 vance 2018-03-15 16:35:01 +08:00 1.Nginx 一致性 Hash 2.Redis 管理 3.不用 Session |
30 night98 2018-03-15 18:01:20 +08:00 via Android 最近新开项目搭框架的时候也遇到了这个问题,目前比较主流的方案就是 redis 共享 session,使用 springboot+springsession 的话一行代码就解决了,其他的就是 jwt,相当于用户信息加密保存到 c 端,每次请求带上这个数据即可,优点是服务器无 session 化,经过对比后我选的是 redis 共享的方案,比较方便 |
![]() | 31 janxin 2018-03-15 18:08:43 +08:00 我来说一个不一样的,cookies 植入后端服务器信息(没必要写 ip 域名),前端负载均衡根据 cookie 选择。不保证请求均衡,可支持水平伸缩。 |
![]() | 32 RubyJack 2018-03-15 18:11:59 +08:00 客户端方案是用 JWT 这类,服务端方案就是 Session 集中存储 |
![]() | 33 wucao219101 2018-03-15 18:20:27 +08:00 |
![]() | 34 vibbow 2018-03-15 18:21:41 +08:00 同时存本机和共享数据库里。 LB 做 sticky session。 这样绝大多数情况都不会牵扯到 session 共享 一旦一个机子掉了,请求被打到另一台服务器上,也可以通过共享数据库取出 session |
35 jasonchn 2018-03-15 18:35:34 +08:00 via Android @janxin 这样的话,负载均衡本身还要实现高可用,要考虑负载均衡之间同步 server id 表的问题。 |
36 gandofyan 2018-03-15 19:18:03 +08:00 spring session + apache Geode 集群 低延迟, 高并发和一致性都可以保证 |
37 jorneyr 2018-03-15 20:00:02 +08:00 JWT 挺好的 |
39 1762628386 2018-03-15 23:24:44 +08:00 都别一句话完事啊 有没有大佬结合自己使用中的场景讲讲的 |
![]() | 41 aricch OP @vance @night98 @wucao219101 @RubyJack @wucao219101 @vibbow @gandofyan @jorneyr @1762628386 @q397064399 @likuku @TZ @binux @hambut 各位感谢,准备用 Redis 再实践一下。 @janxin 感谢新思路 |
![]() | 42 JRay 2018-03-16 12:10:08 +08:00 存 redis +1 |