Rainbond最佳实践:Tomcat配置Redis实现Session共享
2018-01-03 14:45
676 查看
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共享:
配置Procfile:将如下命令添加到您的Procfile中,并源码根目录下添加Procfile。
应用端口8080,平台默认开启应用5000端口,为了端口映射正常:
在Procfile中指定端口
在应用控制台-端口设置8080端口
指定session存储
配置webserver:在源码根目录下添加webserver文件,写入现平台支持webapp-runner版本:
云帮通过源码创建应用,在创建应用-应用设置选择已创建的Redis进行依赖关联。
应用配置redis:将
重启应用以适配
为方便创建应用时依赖,建议提前通过应用市场创建 Redis 应用;若您未在创建时依赖Redis应用,也可以在应用创建完成后在 应用控制台-依赖进行Redis应用关联。关联后记得重启应用哦。
创建Dockerfile,写入如下内容:
使用源码
使用war包
确认源码的
在创建应用-应用设置选择已创建的Redis进行依赖关联。
应用配置redis:配置变量
重启应用以适配
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共享:
使用Webapp-Runner或Jetty-Runner
云帮使用 webapp-Runner 内嵌的 tomcat 或 jetty-Runner 内嵌的 jetty 实现服务器功能。在您不创建其他服务器情况下即可轻松将应用部署在云帮。通过以下步骤可实现 配置redis实现session共享。配置Procfile:将如下命令添加到您的Procfile中,并源码根目录下添加Procfile。
web: java -jar ./webapp-runner.jar --port 5000 --session-store redis ./*.war
应用端口8080,平台默认开启应用5000端口,为了端口映射正常:
在Procfile中指定端口
--port 5000
在应用控制台-端口设置8080端口
指定session存储
--session-store redis
配置webserver:在源码根目录下添加webserver文件,写入现平台支持webapp-runner版本:
webapp-runner-7.0.57.2.jar
webapp-runner-8.0.18.0-M1.jar
webapp-runner-8.5.5.2.jar
云帮通过源码创建应用,在创建应用-应用设置选择已创建的Redis进行依赖关联。
应用配置redis:将
REDIS_URL新增至应用环境变量中,值为
127.0.0.1:6379。
重启应用以适配
为方便创建应用时依赖,建议提前通过应用市场创建 Redis 应用;若您未在创建时依赖Redis应用,也可以在应用创建完成后在 应用控制台-依赖进行Redis应用关联。关联后记得重启应用哦。
使用docker镜像
云帮提供使用定制 tomcat 容器来启动应用的方法。通过以下步骤可实现 配置redis实现session共享。创建Dockerfile,写入如下内容:
使用源码
dockerfile FROM goodrainapps/tomcat:7.0.82-jre7-alpine RUN rm /usr/local/tomcat/webapps/ROOT COPY <dir_name> /usr/local/tomcat/webapps/ROOT #<dir_name>为源码目录名称 EXPOSE 8080
使用war包
FROM goodrainapps/tomcat:7.0.82-jre7-alpine RUN rm /usr/local/tomcat/webapps/ROOT COPY <filename>.war /usr/local/tomcat/webapps/ROOT.war EXPOSE 8080
确认源码的
<dir_name>或
<filename>.war存在,并且与Dockerfile文件存在同一目录,以此目录为根目录开始创建应用。
在创建应用-应用设置选择已创建的Redis进行依赖关联。
应用配置redis:配置变量
REDIS_URL到应用环境变量中,值为
127.0.0.1:6379;配置变量
REDIS_SESSION到应用环境变量中,值为
true。
重启应用以适配
相关文章推荐
- Rainbond最佳实践:Tomcat配置Redis实现Session共享
- Nginx+Tomcat+Redis实现负载均衡与Session共享之三 — Gradle下载配置
- Nginx反向代理Tomcat实现现负载均衡(高可用)以及利用redis+Session同步会话共享配置详解
- tomcat+redis实现session共享配置之路 支持Tomcat 8
- 我的tomcat+redis实现session共享配置之路
- tomcat server.xml配置crossContext 实现多应用中session共享
- Nginx+Tomcat+Memecached实现session共享配置
- Nginx+Tomcat+Memcached 集群Session共享[memcached服务安装、tomcat使用memcache存储session、nginx安装配置实现tomcat负载均衡]
- Node.js Redis Expess 开发环境配置及Session实现服务器间共享实例
- tomcat+redis实现session共享
- tomcat使用redis共享session并实现单点登录
- 详解之:linux下tomcat、nginx的负载均衡及memcached对session共享的实现配置详细总结
- Nginx+Redis+Tomcat实现session共享的集群
- linux下实现redis共享session的tomcat集群
- Linux+Nginx+Tomcat+Redis实现负载均衡,应用集群及session共享
- linux-tomcat+nginx+redis:分布式session共享(redis配置说明)
- tomcat6集群session共享配置的实现
- linux下实现redis共享session的tomcat集群
- 利用tomcat redis 实现session共享
- Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享