服务器安装Apache+Tomcat+Memcached共享Session的构架设计

网站集群部署解决计划

一、       计划目标

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

二、       部署架构

采取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-serializerkryo-serializers-0.10 (0.10 is needed, as 0.20+ is for kryo2), kryominlogreflectasmasm-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

时间: 2024-10-08 18:35:00

服务器安装Apache+Tomcat+Memcached共享Session的构架设计的相关文章

tomcat实现session集群及tomcat+memcached共享session存储(四)

接博客nginx或httpd实现负载均衡tomcat(三) tomcat实现会话管理原理及实现: tomcat管理会话使用的专用的会话管理组件,tomcat的会话管理器有4种: 1.标准会话管理器(StanderdManager) 2.持久会话管理器(PersistentManager可以基于文件存储(FileStore)或JDBC存储(JDBCStore)) 基于JDBC的话就可以实现高可用tomcat的session集群. 1.DeltaManager会话管理器 2.BackupManage

tomcat篇之结合apache+tomcat+memcached做session共享

tomcat1:192.168.1.155 tomcat2:192.168.1.11 apache:192.168.1.155 前端代理apache设置,参考前面的tomcat文章(基于mod_proxy和mod_jk模块) 这里不再赘述,直接贴配置文件: cd /etc/httpd/conf.d [[email protected] conf.d]# cat mod_jk.conf LoadModule  jk_module  modules/mod_jk.so JkWorkersFile/e

【Tomcat】Tomcat + Memcached 实现session共享

概述 web项目中,Tomcat的访问量总是有限的,这时候就需要用到Tomcat集群,多个Tomcat的时候就要考虑Session共享的问题,这里介绍一种使用Memcached做Session共享的解决方案 环境 操作系统:Linux( centOS 6..5 版) 软件:Tomcat7    Memcached 实现原理 Tomcat + Memcached 实现session共享流程图 配置 安装Tomcat 2个和Memcached 1个,参考[Linux]Tomcat安装及一个服务器配置

httpd+tomcat+memcached实现session保持

本节我将带大家认识tomcat以及如何基于memcached实现tomcat的会话保持.好了废话不多说,下面我们就开始了. tomcat的介绍 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.实际上Tomcat 是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的.通常在我们的应用过程中,我们让A

Httpd+Tomcat+memcached实现session server

何为会话保持 会话保持是负载均衡最常见的问题之一,也是一个相对比较复杂的问题.会话保持有时候又叫做粘滞会话(Sticky Sessions).会话保持是指在负载均衡器上的一种机制,可以识别客户端与服务器之间交互过程的关连性,在作负载均衡的同时还保证一系列相关连的访问请求会保持分配到一台服务器上 何时需要会话保持 在讨论这个问题前,我们必须先花点时间弄清楚一些概念:什么是连接(Connection).什么是会话(Session),以及这二者之间的区别.需要特别强调的是,如果我们仅仅是谈论负载均衡,

【电商】nginx+tomcat+memcached实现session共享集群

在分布式多tomcat web集群环境下,首先要解决的是session的共享问题,一般的实现思路有: (1) session复制:多tomcat之间进行session的同步,集群中的tomcat存储相同的session信息 (2) 共享session存储:将session集中存储在同一个地方,如redis/memcached,甚至DB.tomcat本身的内存中并不存储session (3) session粘性:其实session粘性并不是session共享的方案,而是多tomcat的集群方案,配

Tomcat+Memcached实现Session共享

在先前的例子中,我用Tomcat官方提供的Session复制方式实现Tomcat集群Session共享.今天,我用另一种方式Memcached-Session-Manager来实现Session共享.话不多说,上实例. Memcached-Session-Manager将Session序列化到Memcache中,序列化的组件有很多,比如: msm-kryo-serializer.msm-javolution-serializer等,这里使用msm-javolution-serializer,使用

nginx+tomcat+memcached构建session共享集群

一.安装配置tomcat 配置前说明: 系统为centos7 m1.xsllqs.com地址为192.168.1.107 c1.xsllqs.com地址为192.168.1.114 c2.xsllqs.com地址为192.168.1.113 安装tomcat需要配合JDK使用,JDK有oracle JDK和open JDK两种 oracle JDK8的下载地址:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-down

tomcat cluster和tomcat+memcached实现Session会话保持

Tomcat Cluster: tomcat基于内存复制的集群,tomcat集群各节点通过建立tcp链接来实现session的复制,tomcat启动时,一个cluster对象(默认配置下是SimpleTcpCluster)会启动membership服务和Replication服务(用于建立tcp链接),membership服务记录了集群当前节点的信息,当一台节点接收http请求并产生一个新session时,调用Replication服务建立tcp连接把Session复制到membership列表