新代碼推送生產,要求零宕機、用戶零感知。採用 Nginx 負載均衡 + Tomcat 集群,滾動升級節點。
摘掉節點時,用戶 Session 不能丟失。解決方案:Session 外部化存儲到 Redis。
rpm -ivh nginx-1.4.2-1.el6.ngx.x86_64.rpm,配置 upstream tomcat 指向兩實例,location / { proxy_pass https://tomcat; },重啟。lib 目錄。修改 context.xml:
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost" port="6379" database="0" maxInactiveInterval="60" />