搜尋
首頁資料庫mysql教程Apache+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的构架设计

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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设置为每次与联系人交互时提示您。如果您愿意,还可以永久禁用名称

如何使用 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是后边的服务项目未运行

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

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

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

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

NameDrop 如何在 iPhone 上工作(以及如何禁用它)NameDrop 如何在 iPhone 上工作(以及如何禁用它)Nov 30, 2023 am 11:53 AM

在iOS17中,有一项新的AirDrop功能,可让您通过同时触摸两部iPhone来与某人交换联系信息。它被称为NameDrop,这是它的实际工作原理。NameDrop无需输入新人的号码来给他们打电话或发短信,以便他们拥有您的号码,您只需将iPhone靠近他们的iPhone即可交换联系方式。将两台设备放在一起会自动弹出联系人共享界面。点击弹出窗口会显示一个人的联系信息和他们的联系人海报(您可以自定义和编辑的您自己的照片,也是iOS17的新功能)。该屏幕还包括“仅接收”或共享您自己的联系信息作为响应

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),