集群环境下session方案与no session方案哪种好?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

集群环境下session方案与no session方案哪种好?

2016-02-25 17:49:57 2564 1

集群环境下,必然需要考虑用户和会话的问题,如果不加处理的话,一旦后端IP轮询切换,session也就断了。所以就有了4种方案。先说下session的问题,tomcat在启动时就会创建一个session,当会话越多的时候,session也就越多。而session在tomcat中属于重量级对象。一个没有任何内容的空session就需要消耗1.5K的内存存储空间
1.tomcat自带的方案,session复制,笨重低效,基本上是淘汰的方案。
2.nginx第三方扩展的sticky粘滞,把会话和后端IP绑定,比较简单,但个人感觉不是很可靠。
3.基于redis等nosql的session集中存储,tomcat配置也比较简单。这种最流行,但仍然存在以下问题:(1)redis有单点,并且增加了系统复杂度。(2)用来连接redis的jedis性能不稳定,高并发下很容易挂,这点看到过不少反馈。
4.纯cookie,不使用session,天然分布式。存在的问题:(1)cookie需要加解密,性能消耗要考虑,而且不能存太多东西,序列化本身消耗也不少。(2)每次请求都会带上cookie,包括JS和CSS等请求,浪费宽带,除非部署了CDN或专用服务器。
究竟哪种方案更好呢?

取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 18:47:46

    1,放弃使用session,就算同步策略非常优秀,但是造成的网络风暴不可避免
    2,sticky粘滞会导致无法热切换,存在运维问题
    3,如果是jedis的锅,是否有代替方案,因为目前redis等KV工具还是广泛使用的,如果担心单点问题,可以仿照osc的j2cache自己弄一个redis + db
    4,结合业务,看下面总结
    总结:结合业务
    如果每次请求都需要获取当前认证用户的较多相关信息,ID哈希后查DB是一个好办法,但如果是并发高的系统,只能寻找redis等代替方案

    0 0
相关问答

1

回答

阿里云官方文档中“100%兼容MySQL、Postgre SQL”,指的是两种数据库吧?

2022-07-14 15:05:02 109浏览量 回答数 1

1

回答

Java虚拟机中的Extension ClassLoader是什么?

2021-10-25 22:51:10 146浏览量 回答数 1

1

回答

<p>java web项目,部署到Linux服务器上,session 超时时间不生效-java报错

2020-06-01 21:07:56 652浏览量 回答数 1

1

回答

如何在ascx传递session到不同的aspx页面 C#问题

2020-05-28 13:27:57 628浏览量 回答数 1

0

回答

自己集成activemq到servlet web环境中, 是不是每次用法session都要关闭呢?

2019-08-29 16:00:10 180浏览量 回答数 0

20

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

2019-07-10 09:36:10 1348640浏览量 回答数 20

1

回答

问下\sf 查看函数时报错 ERROR: more than one function named,应该怎么查看这个函数

2019-06-20 10:21:44 1844浏览量 回答数 1

1

回答

阿里ECS重启sshd错误 Error: No space left on device

2017-02-14 11:06:43 2573浏览量 回答数 1

1

回答

阿里ECS重启sshd 报错 Error: No space left on device

2017-02-14 11:03:09 2174浏览量 回答数 1

1

回答

SLB负载两台ECS,使用时发现session会丢失

2016-07-20 11:02:44 4379浏览量 回答数 1
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载