Rainbond最佳实践:Tomcat配置Redis实现Session共享
生活随笔
收集整理的這篇文章主要介紹了
Rainbond最佳实践:Tomcat配置Redis实现Session共享
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Rainbond:生產級無服務器PaaS
Rainbond是國內首個開源的生產級無服務器PaaS,深度整合基于Kubernetes的容器管理、多類型CI/CD應用構建與交付、多數據中心的資源管理等技術,提供云原生應用全生命周期解決方案,構建應用與基礎設施、應用之間及基礎設施之間的互聯互通生態體系。
點擊安裝配置Procfile:將如下命令添加到您的Procfile中,并源碼根目錄下添加Procfile。 web: java -jar ./webapp-runner.jar --port 5000 --session-store redis ./*.war 配置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。 重啟應用以適配 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 確認源碼的<dir_name>或<filename>.war存在,并且與Dockerfile文件存在同一目錄,以此目錄為根目錄開始創建應用。 在創建應用-應用設置選擇已創建的Redis進行依賴關聯。 應用配置redis:配置變量REDIS_URL到應用環境變量中,值為 127.0.0.1:6379;配置變量REDIS_SESSION到應用環境變量中,值為true。 重啟應用以適配
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共享。
-
應用端口8080,平臺默認開啟應用5000端口,為了端口映射正常:
- 在Procfile中指定端口--port 5000
- 在應用控制臺-端口設置8080端口
- 指定session存儲--session-store redis
為方便創建應用時依賴,建議提前通過應用市場創建 Redis 應用;若您未在創建時依賴Redis應用,也可以在應用創建完成后在 應用控制臺-依賴進行Redis應用關聯。關聯后記得重啟應用哦。
使用docker鏡像
云幫提供使用定制 tomcat 容器來啟動應用的方法。通過以下步驟可實現 配置redis實現session共享。
創建Dockerfile,寫入如下內容:
- 使用源碼
- 使用war包
總結
以上是生活随笔為你收集整理的Rainbond最佳实践:Tomcat配置Redis实现Session共享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式架构 springcloud+re
- 下一篇: 超高性能管线式HTTP请求(实践·原理·