search
HomeDatabaseMysql TutorialApache+Tomcat+Memcached共享Session的构架设计

网站集群部署解决方案 一、???????方案目标 实现互动留言系统、后台发布系统的高可用性,有效解决高并发量对单台应用服务器的冲击,确保应用服务器单点故障不影响系统正常运行。 二、???????部署架构 采取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 最大内存大小。默认为64M

-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 查看评论

Apache+Tomcat+Memcached共享Session的构架设计

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
快速共享功能在三星手机上不起作用 – 修复快速共享功能在三星手机上不起作用 – 修复Sep 19, 2023 pm 04:25 PM

快速共享可以节省三星用户在设备间传输文件的大量时间。但是三星Galaxy用户抱怨手机上的快速共享功能面临问题。通常,是快速共享中的可见性问题导致了此问题。因此,这是您对Galaxy设备上的快速共享功能进行故障排除所需的唯一指南。修复1–更改快速共享可见性设置切换手机上的快速共享可见性设置。快速共享可能设置为错误的设置,从而导致此问题。步骤1–首先,向上滑动一次以打开应用程序抽屉。步骤2–在那里,打开“设置”.第3步–进入“设置”页面,打开“连接的设备”选项卡。第4步–打开“快速共享”功能。步骤5

如何在iPhone iOS 17上使用NameDrop如何在iPhone iOS 17上使用NameDropSep 22, 2023 pm 11:41 PM

随着新款苹果iPhone15系列手机的推出和最新的iOS17移动操作系统的推出,为苹果设备带来了丰富的新功能,调整和增强功能。用户可能想知道如何在iPhone和iOS17上使用新的NameDrop功能。本指南将简要概述如何使用iOS17上提供的新NameDrop系统快速有效地共享您的联系信息。NameDrop是一项功能,允许iPhone用户快速与他人共享他们的联系信息。它是社交活动、商务会议或社交聚会的便捷工具,您需要与新朋友交换联系方式。但是,请务必注意,NameDrop仅适用于发送新的联系人

如何在iPhone上保护联系人照片和海报的隐私如何在iPhone上保护联系人照片和海报的隐私Sep 18, 2023 am 10:49 AM

谁可以在iPhone上查看您的联系人照片和海报?Apple提供了一些选项,用于个性化您在致电或发消息时在某人的iPhone上的显示方式。这些选项包括拟我表情、简单文本或带有效果的自定照片作为您的联系人照片和显示图像。您可以随时自由更改这些选择,并在联系人卡片上在不同配置文件之间转换。此外,Apple还使您能够控制谁可以在iOS17上查看和访问您选择的照片或显示图像。您可以决定与保存在联系人列表中的个人共享这些内容,也可以将iPhone设置为每次与联系人交互时提示您。如果您愿意,还可以永久禁用名称

Win10系统更新后无法共享打印机如何解决Win10系统更新后无法共享打印机如何解决Jul 07, 2023 am 09:25 AM

Win10系统更新后无法共享打印机如何解决?很多小伙伴反应说在更新到win10系统之后,就无法共享打印机了,这种情况是怎么回事呢,无法共享打印机对一些小伙伴来说是比较麻烦的一件事,如果你不知道如何解决,小编下面整理了Win10系统更新后无法共享打印机解决方法,感兴趣的话一起往下看看吧!Win10系统更新后无法共享打印机解决方法1、首先,按下“win+r”键打开运行窗口,输入“control”命令打开控制面板界面,如图所示;2、接着,在打开的控制面板界面中,找到并打开“卸载程序”选项,再点击左侧的

如何使用 AirDrop 邻近共享发送文件和照片:iOS 17的新功能如何使用 AirDrop 邻近共享发送文件和照片:iOS 17的新功能Sep 16, 2023 am 10:17 AM

在iOS17中,Apple使共享文件和媒体比以往任何时候都更容易,这要归功于一个很酷的新AirDrop邻近感应功能,可以为您完成大部分工作。在以前版本的iOS中,在Apple设备之间传输文件或照片涉及打开相关文件、轻点“共享”按钮、选择AirDrop,然后选择要将文件发送到的附近设备。在iOS17和iPadOS17中,此过程仍然存在于Apple设备之间的共享,但是如果您要在iPhone或iPad之间传输,则可以使用AirDrop的新邻近感应功能来减少一些典型的共享步骤。要发起传输,请选择要与他人

Win7共享打印机出错0x0000011b极致处理Win7共享打印机出错0x0000011b极致处理Jul 09, 2023 pm 06:13 PM

近期有许多win7客户在设定打印机共享时错误并提醒“无法保存打印机设置,实际操作没法进行(不正确0x00000001)”,客户因而没法打印出,那麼碰到这个问题怎么解决呢?一起来看一下解决方案。Win7共享打印机出错0x0000011b极致处理1、电脑键盘键盘快捷键徽标键Win+R键打开运行,在弹出来的运作框中键入【services.msc】明确开启服务窗口,查验这两个服务项目是不是已运行:PrintSpooler和WindowsFirewall一般Win7易出的不正确6d9是后边的服务项目未运行

win7共享文件夹设置方法详解win7共享文件夹设置方法详解Jul 15, 2023 pm 10:53 PM

在同一个办公局域网内,设置共享文件夹可以更方便文件的传输和共享,提供办公效率。不过不同系统设置共享文件夹的方法会有不同,有网友不清楚win7如何设置共享文件夹。下面小编教下大家win7共享文件夹设置方法。具体步骤如下:1、首先开启guest账户,点击桌面右下角的网络,右键“属性”出现网络共享中心打开,按图操作。2、点击图中标出的位置“更改高级共享设置”出现如下界面。3、双击图中红圈内的位置,会出现一个列表,找到所示内容。4、点击“关闭密码保护共享”-“保存修改”结束。5、然后选择需要共享的磁盘分

win11共享打印机设置win11共享打印机设置Jan 11, 2024 pm 06:54 PM

打印机也是可以实现共享了,我们可以一起共享同一台打印机,这样就可以一起打印了十分的方便,这些设置都是可以在控制面板中查看的,一起来看看吧。win11共享打印机设置:1、首先我们打开“设置”然后搜索控制面板并点击。2、接着点击“查看设备和打印机”。3、点击上方的“添加打印机”。4、然后系统就会进行一个自动扫描。5、最后搜索到了就可以进行连接了。阅读拓展:浏览器打不开

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!