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 2的 tomcat A ,此時會在Redis 中找到已存在的 session,即取即用。redis
經過源碼構建,您能夠經過以下兩種方式實現 配置redis實現session共享:docker
雲幫使用 webapp-Runner 內嵌的 tomcat 或 jetty-Runner 內嵌的 jetty 實現服務器功能。在您不建立其餘服務器狀況下便可輕鬆將應用部署在雲幫。經過如下步驟可實現 配置redis實現session共享。tomcat
配置Procfile:將以下命令添加到您的Procfile中,並源碼根目錄下添加Procfile。服務器
web: java -jar ./webapp-runner.jar --port 5000 --session-store redis ./*.war
--port 5000
--session-store redis
配置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
應用配置redis:將REDIS_URL
新增至應用環境變量中,值爲 127.0.0.1:6379
。app
重啓應用以適配
爲方便建立應用時依賴,建議提早經過應用市場建立 Redis 應用;若您未在建立時依賴Redis應用,也能夠在應用建立完成後在 應用控制檯-依賴進行Redis應用關聯。關聯後記得重啓應用哦。
雲幫提供使用定製 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包 ```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