基于Rainbond的最佳实践
Tomcat配置Redis实现Session共享
Rainbond:生产级无服务器PaaS Rainbond是国内首个开源的生产级无服务器PaaS,深度整合基于Kubernetes的容器管理、多类型CI/CD应用构建与交付、多数据中心的资源管理等技术,提供云原生应用全生命周期解决方案,构建应用与基础设施、应用之间及基础设施之间的互联互通生态体系。 点击安装
为了使您的应用承受更多的并发,提高应用稳定性,您需要在适当情况下进行扩容。每个节点下的Tomcat只存储来访问自己的请求时产生的session,为了解决扩容后session持久化的问题,我们提供 **Java的War包项目使用Tomcat配置Redis实现Session共享** 解决方案,将您session储存在redis中来保证您应用程序稳定性。如图所示:
若 Load Balancing 将请求发送给 container 1 下的 tomcat A ,同时产生 session ,将此 session 持久化到Redis 中。当 Web Server 再次发送请求,若请求到 container 2的 tomcat A ,此时会在Redis 中找到已存在的 session,即取即用。
通过源码构建,您可以通过如下两种方式实现 配置redis实现session共享:
01
云帮使用 webapp-Runner 内嵌的 tomcat 或 jetty-Runner 内嵌的 jetty 实现服务器功能。在您不创建其他服务器情况下即可轻松将应用部署在云帮。通过以下步骤可实现 配置redis实现session共享。
--port 5000
--session-store redis
REDIS_URL
新增至应用环境变量中,值为 127.0.0.1:6379
。{{site.data.alerts.callout_success}}
为方便创建应用时依赖,建议提前通过应用市场创建 Redis 应用;若您未在创建时依赖Redis应用,也可以在应用创建完成后在 应用控制台-依赖进行Redis应用关联。关联后记得重启应用哦。
{{site.data.alerts.end}}
02
云帮提供使用定制 tomcat 容器来启动应用的方法。通过以下步骤可实现 配置redis实现session共享。
<dir_name>
或<filename>.war
存在,并且与Dockerfile文件存在同一目录,以此目录为根目录开始创建应用。REDIS_URL
到应用环境变量中,值为 127.0.0.1:6379
;配置变量REDIS_SESSION
到应用环境变量中,值为true
。下期预告:#最佳实践#Spring Boot框架配置MySQL