119 Nginx和Tomcat负载均衡实现session共享

nginx+tomcat负载均衡(含session共享) Nginx+Tomcat负载均衡(含Session共享)案例 阅读详情
以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架。

    此框架的优势:

         1、支持Tomcat6和Tomcat7

          2、操作粘性或不黏性Session

          3、没有单点故障

          4、Tomcat的故障转移

          5、Memcached的故障转移

          6、可插拔的Session序列化

          7、支持异步保存Session

          8、Sessions发送到Memcached如果他确实修改了

          9、JMX管理和监控

    步骤:

            以下操作步骤的前提是你已经安装了,Tomcat和Memcached,和已经配置了Nginx的负载,

           如果这些您都没做,请先安装和配置,这些网上有很多,不再多说。

       1、下载jar包

                 下载的jar有:

                     memcached-session-manager-1.5.1.jar, memcached-session-manager-tc6-1.5.1.jar, 

                jar包下载地址:http://code.google.com/p/memcached-session-manager/downloads/list

       2、把下载的jar包放到%TOMCAT_HOMT%\lib中。

       3、配置%TOMCAT_HOME%\config\context.xml

                在Context.xml文件中加入

[html]  view plain copy
  1.        <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"    
  2. memcachedNodes="n1:localhost:11211,n2:localhost:11212"              
  3. requestUriIgnorePattern=".*\.(png|gif|jpg|css|js){1}quot;    
  4. sessionBackupAsync="false"    
  5. sessionBackupTimeout="1800000"    
  6. copyCollectionsForSerialization="false"    
  7. transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"    
  8.              
  9.      />    


也可在server.xml配置文件的<Host>...<Host>中添加配置

[html]  view plain copy
  1. <Context docBase="F:/tomcats/tomcat-7.0.2_2/webapps"  path= "/msm"  reloadable= "true"  >    
  2.       <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"    
  3. memcachedNodes="n1:localhost:11211,n2:localhost:11212"              
  4. requestUriIgnorePattern=".*\.(png|gif|jpg|css|js){1}quot;    
  5. sessionBackupAsync="false"    
  6. sessionBackupTimeout="1800000"    
  7. copyCollectionsForSerialization="false"    
  8. transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"    
  9.              
  10. />    
  11. </Context>    


4、启动Tomcat查看Session是否共享成功。

     说明:

            1、 session存储到memchached实现方案时。他主要功能是修改tomcat的session存储机制,使之能够把session序列化存放到memcached中。

       2、Manager标签属性说明:

             className

                    此属性是必须的。

             memcachedNodes

                        此属性是必须的。这个属性必须包含你所有运行的memcached节点。每个节点的定义格式为<id>:<host>:<port>。

                   多个之间用空格或半角逗号隔开(如:memcachedNodes="n1:localhost:11211,n2:localhost:11212")。

                       如果你设置单个memcache节点<id>是可选的,所以它允许设置为<host>:<port>(memcachedNodes="localhost:11211")。

             failoverNodes

                      可选项,属性只能用在非粘连Session机制中。

                      此属性必须包含memcached节点的Id,此节点是Tomcat作为备份使用。多个之间用空格或逗号隔开

              memcachedProtocol

                   可选项,默认为text。出属性指明memcached使用的存储协议。只支持text或者binary。

              sticky 可选项,默认为true。

                    指定使用粘性的还是非粘性的Session机制。

              lockingMode 可选项, 此属性只对非粘性Session有用,默认为none。

                     指定非粘性Session的锁定策略。他的只有

                        (1)、none:从来不加锁

                        (2)、all: 当请求时对Session锁定,直到请求结束

                        (3)、auto:对只读的request不加锁,对非只读的request加锁

                        (4)、uriPattern:<regexp>: 使用正则表达式来比较requestRUI + "?" + queryString来决定是否加锁,

             requestUriIgnorePattern  可选项

                        此属性是那些不能改备份Session的请求的正则表达式。如果像css,javascript,图片等静态文件被同一个Tomcat和同一个应用上下文来提供,这些

                   请求也会通过memcached-session-manager。但是这些请求在一个http会话中几乎没什么改变,所以他们没必要触发Session备份。所以那些静态文件

                   没必要触发Session备份,你就可以使用此属性定义。此属性必须符合java regex正则规范。

            sessionBackupAsync 可选项,默认true

                        指定Session是否应该被异步保存到Memcached中。 如果被设置为true,backupThreadCount设置起作用,如果设置false,通过sessionBackupTimeout

                   设置的过期时间起作用。

            backupThreadCount 可选项,默认为CPU内核数。

                       用来异步保存Session的线程数(如果sessionBackupAsync="true")。

            sessionBackupTimeout  可选项,默认100,单位毫秒

                       设置备份一个Session所用的时间,如果操作超过时间那么保存失败。此属性只在sessionBackupAsync="false"是起作用。默认100毫秒

            sessionAttributeFilter 可选项 从1.5.0版本有

                       此属性是用来控制Session中的那个属性值保存到Memcached中的正则表达式。郑则表达式被用来匹配Session中属性名称。如

                  sessionAttributeFilter="^(userName|sessionHistory)$" 指定了只有"userName"和"sessionHistory"属性保存到Memcached中。

                  依赖于选择的序列化策略。

            transcoderFactoryClass 可选,默认为 de.javakaffee.web.msm.JavaSerializationTranscoderFactory

                       此属性值是创建序列化和反序列化保存到Memcached中的Session的编码转换器的工厂类名。这个指定的类必须实现了de.javakaffee.web.msm.TranscoderFactory

                 和提供一个无参的构造方法。例如其他的有效的实现在其他packages/jars中提供如:msm-kryo-serializer,msm-xstrea-serializer和msm-javolution-serializer.

            copyCollectionsForSerialization 可选项,默认false。

            customConverter 可选项

                  

            enableStatistics 可选项,默认true

                   用来指定是否进行统计。

            enabled 可选项,默认true

                    指定Session保存到Memcached中是否可用和是否可以通过JMX进行改变。只用于粘性Session。

           更多说明请看:http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration

【信息科学与工程学】【数据中心】 第七篇 智算中心CLOS组网整体设计 区域主要功能网络要求技术选型安全等级可用性要求训练区​大规模AI模型训练,分布式计算超高带宽(100G+),超低延迟(<1ms),无损网络RoCEv2,PFC,DCQCN,多路径P4(最高)99.99%推理区​实时AI推理,模型服务低延迟(<10ms),高可用,弹性扩展智能负载均衡,服务网格,容器网络P3(高)99.999%公共服务区​统一认证,API网关,数据服务多租户隔离,安全防护,弹性带宽VXLAN,EVPN,微隔离P3(高)99.99%存储区​高性能存储,数据湖超高带宽,低延迟,高IOPSNVMe- 阅读详情

相关推荐

【产品体系】第六十五篇 Nacos / HiClaw / HiMarket 体系01

子系统核心现象主力数学工具​变更传播 fan-out / cache staleness图 fan-out 分析、概率上界 P(Tstale​)、logical-clock version monotonicityHigress 网关​突发限流、延迟堆积排队论 (M/G/1)、Token/Leaky Bucket ODE、Little's Law L=λWHiMarket 检索​语义匹配召回、去冗余。

weixin_49199313的博客 61

计算机组成原理——存储器(Memory)

计算机组成原理中存储器章节的相关基础知识

m0_66881249的博客 1万+

nginx+tomcat实现负载均衡,共享session的两种方式

nginx+tomcat实现负载均衡,共享session的两种方式: 1.使用Redis共享session 2.使用tomcat的组播功能。

Nginx+Tomcat(负载均衡、动静分离)

正向和反向代理的作用以及工作流程;负载均衡的几个模式;部署nginx+tomcat具体实验以及测试效果

2201_75444658的博客 3066

Nginx+tomcat 实现负载均衡session共享demo

Nginx+tomcat 实现负载均衡session共享demo,和http://blog.youkuaiyun.com/u014513883/article/details/48550709 类似

使用redis解决nginx+tomcat8负载均衡集群session共享问题jar包

使用redis解决nginx+tomcat8负载均衡集群session共享问题jar包

Nginx和Tomcat负载均衡实现session共享

以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架。     此框架的优势:          1、支持Tomcat6和Tomcat7

small_love的专栏 3万+

open-web UI 实用指南

open-web UI 类似于chatgpt的界面,可以私有化模型本地部署,也可以用商业模型.本文只是用开源模型. 它以实现多模态AI聊天 , AI 翻译 , 语音转文本, 文本转语音, 文生图,代码助手,可谓利器。

szmars的博客 3万+

Nginx+tomcat集群使用redis共享session

一 :nginx负载均衡 当Tomcat当做独立的Servlet容器来运行时,可看做是能运行Java Servlet的独立Web服务器。 此外 Tomcat还可以作为其他Web服务器进程内或者进程外的Servlet容器,从而与其他Web服务器集成(Apache Nginx IIS 等) 集成的意义在于:对于不支持运行java Servlet的其他Web服务器,可以通过集成Tomcat来提供运...

weixin_30408739的博客 85

别再只调包了!深入理解机器学习虚拟筛选中的分子指纹(ECFP/Morgan)

本文深入探讨了ECFP/Morgan分子指纹在机器学习虚拟筛选中的应用与优化策略。通过解析半径参数与比特长度的化学意义,揭示了如何通过参数调优提升模型性能20%以上,特别适用于药物发现领域的高通量筛选。文章还提供了工程实践中的参数优化策略和多指纹融合技术,为开发者提供从理论到实践的全面指导。

weixin_33704234的博客 829

手把手教你用OpenRouter免费模型:从DeepSeek V3.1到Llama 3.3的实战指南

本文详细介绍了如何利用OpenRouter平台免费接入DeepSeek V3.1、Llama 3.3等53个AI模型,提供从账号注册到实战应用的完整指南。通过文本摘要、客服对话生成和代码生成等具体案例,帮助开发者高效利用免费模型资源,提升AI应用开发效率。

weixin_29258297的博客 3560

nginx+tomcat+memcached实现session共享

一.工作原理及原理图<img class="alignnone wp-p_w_picpath-31" src="http://119.29.25.60/wp-content/uploads/2016/04/图片1.bmp" alt="图片1" width="342" height="254" />工作原理...

sre救赎之路 106

2024东南大学533复试C++程序设计笔试真题精讲

【东南553复试C++】2024东南大学533复试C++程序设计笔试真题精讲

转遍世界 3415

memcache在tomcat中实现session交叉存放

###jdk 首先从官网下载jdk包 tar   zxf  jdk-7u79-linux-x64.tar.gz  -C   /usr/loacl   ##-C  指定路径 cd   /usr/local/ ls ln  -s   jdk1.7.0_79  java   ##做软链接 ll   -d   /usr/local/java ##加永久的环境变量 vim  /etc/profile  ...

weixin_42709236的博客 228

别再让COGI拖慢你的SAP接口!手把手教你配置BAPI_PRODORDCONF_CREATE_TT的同步货物移动

本文深入解析SAP生产订单报工接口中的COGI问题,通过BAPI_PRODORDCONF_CREATE_TT的同步配置实战,解决异步更新导致的性能瓶颈。文章详细介绍了增强点配置和性能验证,帮助用户彻底消除COGI堆积,提升接口效率。

weixin_29214691的博客 482

基于STM32F103的智能门禁门锁门卫系统设计

本文设计了一种基于STM32F103单片机的智能门禁系统,集成了密码、射频IC卡和指纹识别三种验证方式。系统采用模块化设计,包含MFRC522射频模块、AS608指纹模块、矩阵键盘、OLED显示和舵机控制等硬件,实现了身份验证、密码修改、IC卡/指纹管理以及安全防护功能。测试结果表明系统响应迅速(密码验证250ms、指纹验证600ms)、功耗低(待机50mA),且具备掉电密码保存功能。该系统操作简便、功能完善,适用于家庭和办公场所,具有较高实用价值。未来可扩展远程控制、人脸识别等功能以进一步提升智能化水平。

3254968421的博客 319

# Linux实战笔记:WordPress文创项目部署全流程记录

WordPress是一款开源免费 PHP+MySQL架构的内容管理系统(CMS,Content Management System),2003 年正式发布,基于 GPLv2 开源协议,任何人都可免费使用、修改、二次开发、商用,无需授权费。核心定位:快速搭建各类网站,无需大量代码基础,是全球占有率最高的建站程序,全球超 43% 网站基于 WordPress 搭建。WordPress可演变成为:博客、企业官网、商城、资讯门户、课程网站、作品集、下载站等,需要程序员二次开发。

weixin_46136019的博客 453

车载ECU底软测试:方法与技术的深度解析

底软是运行在 ECU 硬件平台上的基础软件,它为上层应用程序提供了硬件驱动、操作系统服务、通信协议栈等功能。底软的主要功能包括:硬件驱动:负责与 ECU 的各种硬件外设进行通信和控制,如 GPIO、UART、SPI、CAN 等。操作系统服务:提供任务调度、内存管理、中断处理等功能,确保系统的实时性和稳定性。通信协议栈:实现 ECU 与其他 ECU 或外部设备之间的通信,如 CAN、LIN、FlexRay 等。诊断服务:负责对 ECU 的故障进行诊断和处理,并将故障信息存储在故障码存储器中。

天赐好车的博客 1429

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

[dprecated]第五章:TTM分析: 5.1 TTM设计目标和核心概念

TTM是Linux DRM框架下的通用显存管理模块,其复杂性源于需要满足多样化的显存管理需求。该文解析了TTM的核心结构体及其关系:ttm_device作为顶层管理者,包含多个ttm_resource_manager处理不同类型内存;ttm_buffer_object为核心对象,通过ttm_resource关联物理资源;其他组件如ttm_tt管理页表、ttm_pool优化分配效率。文章强调理解这些结构体关系是掌握TTM机制的基础,并建议国产芯片开发者参考这些功能需求。

图形/计算GPU的驱动与虚拟化技术分享园地 2128

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

nginx +多个tomcat实现负载均衡和session共享(完整教程,图文并茂)

使用nginx和tomcat配置负载均衡和session共享 文章目录使用nginx和tomcat配置负载均衡和session共享安装nginx安装多个tomcat设置负载均衡设置session共享 安装nginx ubuntu安装nginx centOs安装nginx 安装多个tomcat ubuntu和centOs的安装规则一样,故不作区分 设置负载均衡 设置session共享 ...

小雪的博客 8598

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Redis实战和核心原理详解(5)使用Redis存储Nginx+Tomcat负载均衡集群的Session

环境:Cent OS 7.0(虚拟机环境)、Nginx 1.9.8、Redis 3.2.1一、背景在使用Nginx+Tomcat实现负载均衡的时候,由于Nginx对不同的请求分发到某一个Tomcat,Tomcat在运行的时候分别是不同的容器里,因为会出现session不同步或者丢失的问题。二、Nginx安装与配置1、Nginx安装网上的资源对于安装Nginx的介绍比较多,例如最简单的为:(1) 获取

徐刘根的博客 3万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

nginx+tomcat做负载均衡时Session共享验证过程

nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存、web server负载均衡等功能,由于其轻量级、高性能、高可靠等特点在互联网项目中有着非常普遍的应用,相关概念网上有丰富的介绍。分布式web server集群部署后需要实现session共享,针对 tomcat 服务器的实现方案多种多样,比如 tomcat cluster session 广播、nginx IP h...

李胜 2368

nginx和tomcat7.x配置负载均衡和session同步

一.背景 公司使用的是springMVC+spring+Mybatis+Oracle技术,平台封装支持多账套、单据号、定时任务等。业务系统部署在一台应用服务器里面的tomcat,连接一台数据库服务器的oracle11g。用户业务发生时间很离散,一天24小时都有可能操作系统。一般凌晨4点至8点之间,业务操作较少。最近系统没有完全稳定,bug处理、优化完善的发布次数较多,很难跟客户能够约...

qq_37372909的博客 1185
上一篇: 117 Tomcat 系统架构与设计模式,第 1 部分: 工作原理
下一篇: 118 nginx+tomcat+session共享
abandon9527
博客等级 码龄18年 24粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值