Apache+Tomcat+Memcached共享Session的构架设计
来源:互联网 发布:js获取指定子节点 编辑:程序博客网 时间:2024/06/06 11:48
网站集群部署解决方案
一、 方案目标
实现互动留言系统、后台发布系统的高可用性,有效解决高并发量对单台应用服务器的冲击,确保应用服务器单点故障不影响系统正常运行。
二、 部署架构
采取Tomcat集群的部署方式,Apache通过proxy_module代理方式对用户的请求进行负载均衡,转发至tomcat集群中的某一实例进行处理,tomcat集群之间通过Memcached高性能缓存集群共享持久Session。具体结构如下图:
三、 完整解决方案
1、 各服务器所需安装软件列表:
序号
角色
IP地址
所需软件
1
Apache生产服务器
10.10.19.1
Apache HTTP Server2.2*( proxy_module、proxy_http_module\proxy_balancer_module\
proxy_ajp_module模块)
2
Tomcat互动留言服务器NO.1
10.10.19.2
Tomcat 7.0.*,TOMCAT_HOMT/lib下的jar包:
memcached-session-manager-x.y.z.jar, 下载地址
memcached-session-manager-tc7-x.y.z.jar,
(或memcached-session-manager-tc6-x.y.z.jar)
spymemcached-x.y.z.jar, 下载地址
kryo-1.04.jar、kryo-serializers-0.10.jar、asm-3.2.jar、minlog-1.2.jar、msm-kryo-serializer-1.6.3.jar、reflectasm-1.01.jar
(kryo-serializer: msm-kryo-serializer, kryo-serializers-0.10 (0.10 is needed, as 0.20+ is for kryo2), kryo, minlog, reflectasm, asm-3.2)
3
Tomcat互动留言服务器NO.1
10.10.19.3
同上
4
生产服务器NO.1
10.10.19.4
Apache HTTP Server 2.2*(预览站点时使用)
其他同上
5
生产服务器NO.2
10.10.19.5
除Apache HTTP Server 2.2*外,其他同上
6
Memcached缓存服务器NO.1
10.10.19.6
libevent-2.0.21-stable(安装memcached时需要)和memcached1.4.15
7
Memcached缓存服务器NO.2
10.10.19.7
同上
8
数据库服务器
10.10.18.3
SQL Server 2008 R2
2、 安装步骤:
1)编译安装Apache2.2*,除网站必须使用的模块外,加入proxy_module、proxy_http_module\proxy_balancer_module\
proxy_ajp_module模块。按如下方式配置Apache对jsp页面的请求进行负载均衡:
l 发布服务器:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_modulemodules/mod_proxy_http.so
LoadModule proxy_balancer_modulemodules/mod_proxy_balancer.so
LoadModuleproxy_ajp_module modules/mod_proxy_ajp.so
<Proxy balancer://cluster>
BalancerMember ajp://10.10.19.2:8009 route=jvm1
BalancerMember ajp://10.10.19.3:8009 route=jvm2
</Proxy>
ProxyPass/ balancer://cluster/ stickysession=JSESSIONID|jsessionid
l 生产服务器NO.1:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
<Proxy balancer://cluster>
BalancerMember ajp://10.10.19.4:8009route=jvm3
BalancerMember ajp://10.10.19.5:8009route=jvm4
</Proxy>
ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid
2)编译安装Memcached
注意,安装Memcached需要首先安装libevent-2.0.21-stable
启动Memcached:
memcached -d -m 4096 -l localhost -p 11211-u root
给出memcached启动命令参数详解.
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
-p 使用的TCP端口。默认为11211
-m 最大内存大小。默认为64M
-vv 用very vrebose模式启动,调试信息和错误输出到控制台
-d 作为daemon在后台启动
3)安装Java环境和Tomcat7.*。
将下载完成的9个jar包放入 TOMCAT_HOME/lib文件夹下,并按如下修改Tomcat的配置文件TOMCAT_HOME/conf/context.xml:
l Tomcat互动留言服务器NO.1:
<Context>
<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:10.10.19.6:11211,n2:10.10.19.7:11211"
/*此前安装的两个Memcached服务器的IP地址,Memcached默认端口号为11211*/
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
l Tomcat互动留言服务器NO.2:
<Context>
<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:10.10.19.6:11211,n2:19.7:11211"
/*此前安装的两个Memcached服务器的IP地址,Memcached默认端口号为11211*/
failoverNodes="n2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
l 生产服务器NO.1:
<Context>
<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:10.10.19.6:11211,n2:19.7:11211"
/*此前安装的两个Memcached服务器的IP地址,Memcached默认端口号为11211*/
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
l 生产服务器NO.2:
<Context>
<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:10.10.19.6:11211,n2:19.7:11211"
/*此前安装的两个Memcached服务器的IP地址,Memcached默认端口号为11211*/
failoverNodes="n2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
参考文章
1、 https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration
2、 http://www.bradchen.com/blog/2012/12/tomcat-auto-failover-using-apache-memcached
3、 http://blog.csdn.net/ichsonx/article/details/6911358
4、 http://www.linuxidc.com/Linux/2012-08/69312.htm
- Apache+Tomcat+Memcached共享Session的构架设计
- Apache+Tomcat+Memcached共享Session的构架设计
- Apache+Tomcat+Memcached共享Session的构架设计
- memcached 共享tomcat的session
- Tomcat+Memcached Session共享
- memcached+tomcat共享session
- tomcat memcached session 共享
- memcached tomcat session 共享
- memcached tomcat 共享session
- tomcat memcached session共享
- tomcat配置共享session的Memcached
- memcached实现集群tomcat的session共享
- Tomcat集群--基于Memcached的Session共享
- memcached实现tomcat集群的session共享
- 基于Memcached的tomcat集群session共享
- apache+多个tomcat+memcached共享session会话(windows篇)
- apache+tomcat+memcached实现负载均衡,session共享(摘抄+整合)
- Tomcat+memcached实现Session共享
- 新博客地址:idealife.github.io
- MongoDB之复制集(一)原理篇
- Servlet自学第3讲:Tomcat简介与配置
- [Hive]Hive数据倾斜(大表join大表)
- #28 Implement strStr()
- Apache+Tomcat+Memcached共享Session的构架设计
- subset II
- ThreadLocal原理及应用
- 设置session失效时间的三种方式
- svn 无入侵的插件安装方式
- 使用嵌套子查询优化hive的SQL
- 机器学习经典书籍
- <C++>FILE和fstream
- apache与tomcat负载集群的3种方法