视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Apache+Tomcat+Memcached共享Session的构架设计
2020-11-09 13:22:52 责编:小采
文档


网站集群部署解决方案 一、???????方案目标 实现互动留言系统、后台发布系统的高可用性,有效解决高并发量对单台应用服务器的冲击,确保应用服务器单点故障不影响系统正常运行。 二、???????部署架构 采取Tomcat集群的部署方式,Apache通过proxy_module代理

网站集群部署解决方案

一、???????方案目标

实现互动留言系统、后台发布系统的高可用性,有效解决高并发量对单台应用服务器的冲击,确保应用服务器单点故障不影响系统正常运行。

二、???????部署架构

采取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

???BalancerMember ajp://10.10.19.2:8009 route=jvm1

???BalancerMember ajp://10.10.19.3:8009 route=jvm2

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

??? BalancerMember ajp://10.10.19.4:8009route=jvm3

??? BalancerMember ajp://10.10.19.5:8009route=jvm4

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 最大内存大小。默认为M

-vv 用very vrebose模式启动,调试信息和错误输出到控制台

-d 作为daemon在后台启动

3)安装Java环境和Tomcat7.*。

将下载完成的9个jar包放入 TOMCAT_HOME/lib文件夹下,并按如下修改Tomcat的配置文件TOMCAT_HOME/conf/context.xml:

l? Tomcat互动留言服务器NO.1:

???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"

???/>

l? Tomcat互动留言服务器NO.2:

???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"

???/>

l? 生产服务器NO.1:

???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"

???/>

l? 生产服务器NO.2:

???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"

???/>

?

参考文章

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

?


?

作者:xxfigo 发表于2013-5-21 17:01:06 原文链接

阅读:122 评论:0 查看评论

下载本文
显示全文
专题