tomcat 结合 memcache
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。(Tomcat 不太适合高并发,解决方法,增加后端数量)
tomcat 启动前需要配置JDK环境变量,如果没有配置JDK的环境变量,那么tomcat启动的时候就会报错,也就是无法启动。
JDK 是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
Tomcat 安装
系统环境:rhel7.6 x64 selinux and iptables disabled
主机角色:
- server1: 172.25.9.1:nginx memcached
- server2: 172.25.9.2:tomcat memcached
- server2: 172.25.9.3:tomcat memcached
- server1 调度器,server2 和 server3 是后端 。
# 安装 jdk
rpm -ivh jdk-8u121-linux-x64.rpm
# 解压 Tomcat 压缩包
tar zxf apache-tomcat-7.0.37.tar.gz
mv apache-tomcat-7.0.37 /usr/local/tomcat
cd /usr/local/tomcat
# 启动 tomcat
bin/startup.sh
netstat -anltp
# 测试文件
mv test.jsp /usr/local/tomcat/webapps/ROOT/test.jsp
# 配置 tomcat 负载均衡(应用服务器,)
server1 :
vim /usr/local/nginx/conf/nginx.conf
……
27 upstream tomcat {
28 sticky;
29 server 172.25.9.2:8080;
30 server 172.25.9.3:8080;
31 }
……
98 location ~ \.jsp$ {
99 proxy_pass http://tomcat;
100 }
……
tomcat + memcache
Tomcat-1 (T1) 将 session 存储在 memcached-2 (T2)上。只有当 M2 不可用时,T1 才将 session 存
储在 memcached-1 上(M1 是 T1 failoverNode)。使用这种配置的好处是,当 T1 和 M1 同时崩
溃时也不会丢失 session 会话,避免单点故障。
# server2 和 server3 同样操作
# Tomcat 需要的 jar 包
cd jar/
rm -f memcached-session-manager-tc6-1.6.3.jar
# 移动 jar 包到 Tomcat 库
mv * /usr/local/tomcat/lib/
server2:
vim /usr/local/tomcat/conf/context.xml
<Context>
……
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.9.2:11211,n2:172.25.9.3:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
……
</Context>
server3:
vim /usr/local/tomcat/conf/context.xml
<Context>
……
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.9.2:11211,n2:172.25.9.3:11211"
failoverNodes="n2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
……
</Context>
# server2 和 server3
yum install -y memcached
systemctl start memcached
netstart -anltp |grep 11211
# 命令行测试
yum install -y telnet
telnet localhost 11211
# 测试界面的session
get session
示例截图