开篇
利用Nginx作为Tomcat的负载均衡器,Tomcat的会话Session数据存储在Redis,,可以或许实现0当机的7x24运营结果。因为将会话存储在Redis中,因此Nginx就不必设置成stick粘粘某个Tomcat方法,这样才气真正实现靠山多个Tomcat负载均衡,用户请求可以或许发往任何一个tomcat主机,当我们需要陈设新应用代码时,只要遏制任何一台tomcat,所有当前在线用户城市导向到运行中的tomcat实例,因为会话数据被序列化到Redis,在线用户不会受到影响,一旦停掉的tomcat实例上线,别的其他反复陈设进程。
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
一、设置情况
东西 版本 端口 nginx 1.9.4 127.0.0.1:80(默认) tomcat7_1 7.0.61 127.0.0.1:8091 tomcat7_2 7.0.61 127.0.0.1:8092 tomcat7_3 7.0.61 127.0.0.1:8093 redis 2.7.3+ 127.0.0.1:6379(默认)
二、构建 tomcat-redis-session-manager-master
先容:tomcat-redis-session-manager 是一个用来将 Tomcat 的 Session 数据存储在 Redis 库中的项目。
官网:https://github.com/jcoleman/tomcat-redis-session-manager
从官网下载相关源代码,找到build.gradle文件,由于作者利用了第三方客栈(sonatype),需要注册帐号,太贫苦,注释后直接利用maven中央客栈,同时注释签名相关剧本并增加依赖包的输出剧本 copyJars(dist目次),修改后的 build.gradle 文件如下:
applyplugin:'java'applyplugin:'maven'applyplugin:'signing'group='com.orangefunction'version='2.0.0'repositories{mavenCentral()}compileJava{sourceCompatibility=1.7targetCompatibility=1.7}dependencies{compilegroup:'org.apache.tomcat',name:'tomcat-catalina',version:'7.0.61'compilegroup:'redis.clients',name:'jedis',version:'2.7.3'compilegroup:'org.apache.commons',name:'commons-pool2',version:'2.2'//compilegroup:'commons-codec',name:'commons-codec',version:'1.9'testCompilegroup:'junit',name:'junit',version:'4.+'testCompile'org.hamcrest:hamcrest-core:1.3'testCompile'org.hamcrest:hamcrest-library:1.3'testCompile'org.mockito:mockito-all:1.9.5'testCompilegroup:'org.apache.tomcat',name:'tomcat-coyote',version:'7.0.61'}taskjavadocJar(type:Jar,dependsOn:javadoc){classifier='javadoc'from'build/docs/javadoc'}tasksourcesJar(type:Jar){fromsourceSets.main.allSourceclassifier='sources'}artifacts{archivesjararchivesjavadocJararchivessourcesJar}//signing{//signconfigurations.archives/