Rainbond最佳实践:Tomcat配置Redis实现Session共享

Rainbond最佳实践:Tomcat配置Redis实现Session共享html

Rainbond:生产级无服务器PaaS Rainbond是国内首个开源的生产级无服务器PaaS,深度整合基于Kubernetes的容器管理、多类型CI/CD应用构建与交付、多数据中心的资源管理等技术,提供云原生应用全生命周期解决方案,构建应用与基础设施、应用之间及基础设施之间的互联互通生态体系。 点击安装java

为了使您的应用承受更多的并发,提升应用稳定性,您须要在适当状况下进行扩容。每一个节点下的Tomcat只存储来访问本身的请求时产生的session,为了解决扩容后session持久化的问题,咱们提供 Java的War包项目使用Tomcat配置Redis实现Session共享 解决方案,将您session储存在redis中来保证您应用程序稳定性。如图所示: 输入图片说明web

Load Balancing 将请求发送给 container 1 下的 tomcat A ,同时产生 session ,将此 session 持久化到Redis 中。当 Web Server 再次发送请求,若请求到 container 2tomcat A ,此时会在Redis 中找到已存在的 session,即取即用。redis

经过源码构建,您能够经过以下两种方式实现 配置redis实现session共享:docker

使用Webapp-Runner或Jetty-Runner

云帮使用 webapp-Runner 内嵌的 tomcat 或 jetty-Runner 内嵌的 jetty 实现服务器功能。在您不建立其余服务器状况下便可轻松将应用部署在云帮。经过如下步骤可实现 配置redis实现session共享tomcat

  1. 配置Procfile:将以下命令添加到您的Procfile中,并源码根目录下添加Procfile。服务器

    web: java -jar ./webapp-runner.jar --port 5000 --session-store redis ./*.war
    • 应用端口8080,平台默认开启应用5000端口,为了端口映射正常:
    • 指定session存储--session-store redis
  2. 配置webserver:在源码根目录下添加webserver文件,写入现平台支持webapp-runner版本:session

    webapp-runner-7.0.57.2.jar
    webapp-runner-8.0.18.0-M1.jar
    webapp-runner-8.5.5.2.jar
  3. 云帮经过源码建立应用,在建立应用-应用设置选择已建立的Redis进行依赖关联。并发

  4. 应用配置redis:将REDIS_URL新增至应用环境变量中,值为 127.0.0.1:6379app

  5. 重启应用以适配

为方便建立应用时依赖,建议提早经过应用市场建立 Redis 应用;若您未在建立时依赖Redis应用,也能够在应用建立完成后在 应用控制台-依赖进行Redis应用关联。关联后记得重启应用哦。

使用docker镜像

云帮提供使用定制 tomcat 容器来启动应用的方法。经过如下步骤可实现 配置redis实现session共享

  1. 建立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包


```dockerfile
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
  1. 确认源码的<dir_name><filename>.war存在,而且与Dockerfile文件存在同一目录,以此目录为根目录开始建立应用

  2. 建立应用-应用设置选择已建立的Redis进行依赖关联。

  3. 应用配置redis:配置变量REDIS_URL到应用环境变量中,值为 127.0.0.1:6379;配置变量REDIS_SESSION到应用环境变量中,值为true

  4. 重启应用以适配

相关文章
相关标签/搜索