会话保持又称作粘滞会话(Sticky Sessions)。会话保持是指在负载均衡器上的一种机制,可以识别客户端与服务器之间交互过程的关连性,在作负载均衡的同时还保证一系列相关连的访问请求都会分配到一台机器上。
什么是会话保持?
会话保持又称作粘滞会话(Sticky Sessions)。会话保持是指在负载均衡器上的一种机制,可以识别客户端与服务器之间交互过程的关连性,在作负载均衡的同时还保证一系列相关连的访问请求都会分配到一台机器上。换句话讲,会话保持可使得来自同一IP的请求被转发到同一台后端服务器上。
为什么要会话保持?
确保在合适的情境下,将来自相同客户端的请求转发至后端相同的服务器进行处理。例如:你打开淘宝登录了个人账号,即使你浏览了再多的店铺宝贝,切换了很多的页面,用户名是不变的。如果服务器之间没有会话信息的同步机制,则其他服务器无法识别用户身份,造成用户在和应用系统发生交互时出现异常。
[[264535]]
nginx+tomcat会话保持的方案有很多种,今天小编就同大家一起探讨下各种方案的优缺点,帮助大家选择出最适合自己业务的方案!
Nginx的ip_hash算法
Nginx中的ip_hash机制能够让某一客户端在相当长的一段时间内只访问固定的后端web服务器,会话就会得到保持。在某网站页面进行登录时,就不会在后端的web服务器之间跳来跳去,也不会出现登录一次的网站又提示重新登录的情况。
优点:
配置简单,在nginx.conf的upstream调度里增加一句ip_hash即可。
缺点:
1)nginx必须作为最前端的服务器,否则nginx无法获取到客户端准确的ip,以至不能根据ip作hash
2)如果nginx的后端还有其它负载均衡,将导致某个客户端的请求不能定位到同一台session应用服务器上
3)当后端tomcat宕机,用户session会丢失
适用场景:配置简单,利用hash函数解决session的问题,由于宕机导致session信息丢失,建议仅用于开发环境和测试环境。
另外,其它的负载均衡软件也有类似算法,比如LVS的sh算法,haproxy的source算法等
Tomcat集群的Session复制
tomcat的session复制分为两种,一种是全局式的(all-to-all),也就是Node实例的session发生变化之后,它会将这些变更复制到其他所有集群组的成员;另一种是局部式的,它会用到BackupManager、BackupManager实现只复制给一个Buckup Node,并且这个Node会部署相同的Web应用。
tomcat的session复制是基于IP组播(multicast)来完成的。简单的说就是需要进行集群的tomcat通过配置统一的组播IP和端口来确定一个集群组,当一个node的session发生变更的时候,它会向IP组播发送变更的数据,IP组播会将数据分发给所有组里的其他成员(node)。
官方配置方式如下图:
地址:
优点:
当后端tomcat宕机,用户session不丢失。
缺点:
1)使用组播将信息复制到多个tomcat节点,网络开销大
2)消耗更多内存和带宽
适用场景:tomcat官方推荐,集群比较小时采用此方案。
用缓存集中管理session
在单独的服务器或服务器集群上使用缓存技术,如Redis存储Session数据,集中管理所有的Session,所有的Web服务器都从这个存储介质中存取对应的Session,实现Session共享。
目前常用的Session集中管理方案有两种,一种是Memcache-Tomcat-Session,另一种是Spring Session。
优点:
1)可靠性高,减少Web服务器的资源开销
2)提高session数据安全性
缺点:
1)太依赖缓存服务器
2)需要额外的缓存服务器,成本也高
3)实现上有些复杂,配置较多
适用场景:Web服务器较多、要求高可用性的情况。
责任编辑:武晓燕 来源: 今日头条
分享到微信
微信扫码分享
分享到微博相关推荐
各有千秋的三大数据阵营
各有千秋的三大数据阵营:数据拥有者、数据应用、数据核心技术拥有者......2016-11-09 15:18:04
大数据数据市场
各有千秋 谷歌与Facebook数据挖掘之战
意愿数据库背后的理论很简单,但是它十分强大:如果你研究的用户正在寻找某样东西,你就可以准确卖给他们想要的东西.谷歌依靠搜索引擎知道了很多人的意图,它已经利用这个意图数据库带动产品的营销.事实上,去年这一数据库为谷歌到来了500亿美元的收入,其中大部分广告都是通过意向数据定位到用户.2013-08-22 10:03:38
全闪存阵列:产品各有千秋 适合才是王道
2013年关于闪存的话题从未间断。企业数据的几何级增加让性能这个“东风”渐趋压倒了价格这个“西风”,而厂商在降低闪存价格方面做出的集体努力,为我们坚定步入全闪存存储时代又增添了一个重要的砝码。2013-12-26 09:53:46
世界杯D组:各有千秋的布线
51CTO独家策划,IT厂商32强逐鹿世界杯!世界杯D组:各有千秋的布线2010-06-09 12:26:46
世界杯布线
纵观虚拟安全市场 大牌产品各有千秋
本文介绍了各种数据中心虚拟网络安全产品:思科虚拟安全网关和ASA1000V;HPTippingPoint;JunipervGW;VMwarevShield;VyattaOS;HyTrust;CatbirdvSecurity。2011-11-10 09:48:49
各有千秋 戴尔服务器新品“全家福”
随着戴尔的产品的升级,不少颇具吸引力的服务器相继面世。应该选择他们之中的哪一种?让我们一起来看看这些产品。2010-07-05 09:12:39
戴尔服务器新品
旁观者清 Python与Ruby各有千秋
文章客观的分析了Python与Ruby在某些方面的差异。尽管原文作者比较喜欢Python,但作者还是比较客观理性的这两种主流的动态语言进行了比较,应该说两种语言各有优势。2010-08-03 09:48:42
PythonRuby
WiFi vs.蓝牙:一时瑜亮,各有千秋
随着技术的发展进步,蓝牙和Wifi技术在功用方面越来越趋同化,相似的使用环境和场景使得二者竞争也变得激烈。那么谁能打败谁蓝牙和Wifi技术到底谁更强2014-11-28 14:55:57
WiFi蓝牙
专访吉天仪器宋彬——男女运维各有千秋
“运维涵盖的项目太多计算机细化的分类也太杂,所以没必要区分男性和女性。男女运维各有千秋。”提到运维这个话题,宋彬便不由自主的打开了话匣子,和小编侃侃而谈。2012-07-18 09:44:56
5G承载技术各有千秋,传输光纤依旧是迷
随着5G的来临,如何布局5G承载传送网也引起了运营商及设备厂商的高度关注。光通信行业也陷入了沉思,在现有光纤传输的基础上来运行5G的高带宽传输是有很大缺陷的,那么使用怎样光纤才能满足未来的需求,是他们当前所关心的问题。2017-09-19 13:12:38
第十届中国IDC产业年度大典 星光璀璨各有千秋
2016年1月初,《第十届中国IDC产业年度大典》在北京国家会议中心隆重开幕,此次盛典聚焦了“互联网+”所带来的产业变革,为业界提供了一个集技术与商务交流的平台,并推动了中国IDC产业的积极发展。2016-01-06 19:38:25
三家各有千秋,应该看实际使用需求来选择
5G网络拥有高速度,低延时等非常多的优点,很多朋友都跃跃欲试。但是对三大运营商的5G套餐资费和实际使用情况了解不够,所以可能会出现选择困难。其实,选哪个运营商的哪个套餐主要还是看自己的使用需要。下面我就分析一下三大运营商的5G情况。2021-01-08 15:52:33
3步完成Nginx+tomcat负载均衡的会话保持
会话是指一个终端用户与交互系统进行通讯的过程,比如从输入账户密码进入操作系统到退出操作系统就是一个会话过程。会话较多用于网络上,TCP的三次握手就创建了一个会话,TCP关闭连接就是关闭会话。2019-06-20 14:52:46
Nginx+Tomca负载均衡
物联网通讯技术三足鼎立形成:NB-IoT、eMTC、LoRa各有千秋
在物联网产业的发展过程中,逐渐形成了NBIoT、eMTC、LoRa三大通讯技术的三足鼎立,每种技术各有千秋,在各自的应用场景上有独特的优势。2019-06-20 08:43:28
2020十大编程博客:私藏的宝藏编程语言博客大放送
本文中,笔者将分享几个有关不同编码语言的网站和博客,以及其最佳使用方案。排名不分先后,上榜各有千秋!2020-09-22 07:45:14
这6款Python IDE&代码编辑器,你都用过吗?
Python开发工具有很多,诸如IDLE、Pycharm、Spyder、Eclipse+Pydev、VScode、Wing、Jupyter等,可以说各有千秋。2021-06-04 10:38:33
区块链主流共识算法一文全通
在每种伟大的加密货币背后,都有着一个伟大的共识算法。没有共识算法是完美的,但是它们各有千秋。2020-01-22 16:50:32
Nginx+tomcat配置集群
本文介绍了通过在Windowsxp和ubuntu两种环境下nginx和tomcat的集群配置,最终实现负载均衡。2011-11-28 22:18:53
扩散模型攻克算法难题,AGI不远了!谷歌大脑找到迷宫最短路径
GAN、VAE、大型自回归神经网络模型、归一化流等方法,在样本质量、采样速度、对数似然,以及训练稳定性方面都各有千秋。2024-04-02 11:37:59
React、Preact还是Inferno?谁是优秀的JS框架
JavaScript中有许多框架,且各有千秋。在过去的几个月中,笔者一直在研究各种JavaScript框架及其差异。本文中,笔者将选择三个框架,并讨论构建快速Web应用程序的优秀框架。