服务器安装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-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的构架设计的更多相关文章
- 【Tomcat】Tomcat + Memcached 实现session共享
概述 web项目中,Tomcat的访问量总是有限的,这时候就需要用到Tomcat集群,多个Tomcat的时候就要考虑Session共享的问题,这里介绍一种使用Memcached做Session共享的解 ...
- [置顶] 搭建apache+tomcat+memcached集群环境
一.搭建apache server服务器 1.apache server图示:(加载图片要一张一张,所以可以到下面网站下载带图片的word) http://download.csdn.net/user ...
- Nginx+Tomcat+Memcached实现session共享
实验环境: server1:nginx tomcat memcached server2:tomcat memcached Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入 ...
- 分布式Session共享(二):tomcat+memcached实现session共享
一.前言 本文主要测试memcached实现session共享的实现方式,不讨论如何让nginx参与实现负载均衡等. 二.环境配置 本测试在Window下进行 name version port To ...
- Apache+Tomcat+Memcached实现会话保持
会话保持的三种方式 Session sticky会话绑定:通过在前端调度器的配置中实现统一session发送至同一后发端服务器 Session cluster会话集群:通过配置Tomcat保持所有To ...
- Apache + Tomcat 负载均衡 session复制
转自:http://blog.csdn.net/cssmhyl/article/details/8455400 http://snowolf.iteye.com/blog/743611 Apache ...
- Nginx+Tomcat+Memcached负载均衡集群服务搭建
操作系统:CentOS6.5 本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...
- 【转】Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael J ...
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...
随机推荐
- MemSQL Start[c]UP 2.0 - Round 2 - Online Round
搞到凌晨4点一个没出,要gg了. A. Golden System http://codeforces.com/contest/458/problem/A #include<cstdio> ...
- ios开发小技巧之摇一摇截屏
1. 监控摇一摇动作 1> 让当前视图控制器成为第一响应者 // 必须先让当前视图控制器成为第一响应者才能响应动作时间 [self becomeFirstResponder]; 2> 实现 ...
- 基于HOOK和MMF的Windows密码渗透技术
随着计算机与网络的普及,信息安全越来越成为人们所普遍关心的大事.密码的渗透与反渗透在此领域表现的愈演愈烈.本文深入分析了各个版本Windows密码的特点,尤其是针对windws2K/XP安全性提高的情 ...
- 如何防止通过IP地址访问Tomcat管理页面
方法:建议修改webapps下面的原始文件夹的名称,比如加一个后缀: 当需要用管理页面的时候,可以将含有manager的文件夹的后缀去掉即可 manager和host-manager共2个文件夹
- POJ1004Financial Management
这个题犯了一个小小的错误,double输出的时候用f才对,输入用lf即可.... http://poj.org/problem?id=1004 #include<stdio.h> int ...
- Android中ContentProvider的简单使用
1.新建继承ContentProvider的类 package com.wangzhu.demo; import android.content.ContentProvider; import and ...
- Linux和Linux之间共享目录
1.Linux 服务器端NFS服务器的配置 以root身份登陆Linux服务器,编辑/etc目录下的共享目录配置文件exports,指定共享目录及权限等. 执行如下命令编辑文件/etc/exports ...
- iOS开发网络篇--NSURLConnection
S简介 NSURLConnection: 作用: 1.负责发送请求,建立客户端和服务器的连接发送数据给服务器 2.并收集来自服务器的响应数据 步骤: 1.创建一个NSURL对象,设置请求路径 2.传入 ...
- Xamarin.Android 入门之:Android的生命周期
一.前言 活动是Android应用程序的基本构建块,他们可以在许多不同的状态存在.当你把一个Android程序置于后台,过一段时间再打开发现之前的数据还存在. 二.活动状态 下面的图表说明了一个活动可 ...
- Loongnix 系统(MIPS Linux)
电脑上的x86,手机上的ARM,在各自领域都是很成熟的CPU架构了,龙芯也参与进去竞争是很难的,就算是Intel,挤破头皮疯狂补贴自家的Atom x86还是在手机领域无法立足. 所以说,个人觉得龙芯可 ...