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的构架设计, 感谢原作者分享。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

用戶在使用wallpaperengine時可以將獲得的壁紙共享給好友,有很多用戶不知道wallpaperengine如何共享給好友,可以將自己喜歡的壁紙保存到本地之後再通過社交軟體的方式分享給朋友。 wallpaperengine如何分享給好友答:在儲存到本地之後分享給朋友。 1.建議大家可以將自己喜歡的桌布保存到本地之後再透過社群軟體的方式分享給朋友。 2.也可以透過資料夾的方式上傳到電腦端,然後在電腦端用創意工坊的功能點擊分享。 3.在電腦端使用Wallpaperengine,打開創意工坊的選項列找到

越來越多的企業選擇使用專屬的企業微信,這不僅便於企業與客戶、合作夥伴之間的溝通和交流,也大大提高了工作效率。企業微信功能豐富,其中,共享螢幕功能備受歡迎。在會議過程中,透過分享螢幕,與會者可以更直觀地展示內容,從而更有效率地協作。那麼究竟該如何在企業微信中高效的共享自己的螢幕呢,還不了解的用戶們,這篇教程攻略就將為大家帶來詳細的內容介紹,希望能幫助到大家!企業微信怎麼共享螢幕? 1.在企業微信主介面的左側藍色區域內可以看到有一列功能,我們找到「會議」這個圖標,點擊進入之後,就會出現三種會議模式

快速共享可以節省三星用戶在裝置間傳輸檔案的大量時間。但是三星Galaxy用戶抱怨手機上的快速分享功能面臨問題。通常,是快速共享中的可見性問題導致了此問題。因此,這是您對Galaxy裝置上的快速共用功能進行故障排除所需的唯一指南。修復1–更改快速共享可見性設定切換手機上的快速共享可見性設定。快速共享可能設置為錯誤的設置,從而導致此問題。步驟1–首先,向上滑動一次以打開應用程式抽屜。步驟2–在那裡,打開“設定”.第3步–進入“設定”頁面,打開“連接的設備”選項卡。步驟4–開啟「快速共享」功能。步驟5

在日常生活和工作中,我們經常需要在不同裝置之間共用檔案和資料夾。 Windows11系統提供了方便的內建資料夾共用功能,讓我們可以輕鬆地在同一網路內安全地與他人分享所需內容,同時保護個人檔案的隱私。這項功能使文件共享變得簡單而高效,不必擔心洩露私人資訊。透過Windows11系統的資料夾共享功能,我們可以更方便地進行合作、交流和協作,提高工作效率和生活便利性。為了順利配置共用資料夾,我們首先需要滿足以下條件:所有(參與共享的)設備都連接到同一個網路。啟用「網路發現」並配置好共享。知道目標設備中的

隨著新款蘋果iPhone15系列手機的推出和最新的iOS17行動作業系統的推出,為蘋果設備帶來了豐富的新功能,調整和增強功能。使用者可能想知道如何在iPhone和iOS17上使用新的NameDrop功能。本指南將簡要概述如何使用iOS17上提供的新NameDrop系統快速有效地分享您的聯絡資訊。 NameDrop是一項功能,可讓iPhone使用者快速與他人分享他們的聯絡資訊。它是社交活動、商務會議或社交聚會的便利工具,您需要與新朋友交換聯絡方式。但是,請務必注意,NameDrop僅適用於發送新的聯絡人

隨著數位時代的發展,共享印表機成為現代辦公環境中不可或缺的一部分。然而,有時我們可能會遇到共用印表機無法連接到印表機的問題,這不僅會影響工作效率,還會帶來一系列麻煩。本文旨在探討共用印表機無法連接到印表機的原因和解決方法。共用印表機無法連接到印表機的原因有很多,其中最常見的原因是網路問題。如果共用印表機與印表機之間的網路連線不穩定或中斷,那麼就無法進行正常

誰可以在iPhone上查看您的聯絡人照片和海報? Apple提供了一些選項,用於個性化您在致電或發送訊息時在某人的iPhone上的顯示方式。這些選項包括擬我表情、簡單文字或帶有效果的自定照片作為您的聯絡人照片和顯示圖像。您可以隨時自由更改這些選擇,並在聯絡人卡片上在不同設定檔之間轉換。此外,Apple還可讓您控制誰可以在iOS17上查看和存取您選擇的照片或顯示影像。您可以決定與儲存在聯絡人清單中的個人分享這些內容,也可以將iPhone設定為每次與聯絡人互動時提示您。如果您願意,也可以永久停用名稱

在iOS17中,Apple使共享檔案和媒體比以往任何時候都更容易,這要歸功於一個很酷的新AirDrop鄰近感應功能,可以為您完成大部分工作。在先前版本的iOS中,在Apple裝置之間傳輸檔案或照片涉及開啟相關檔案、輕按「共享」按鈕、選擇AirDrop,然後選擇要將檔案傳送到的附近裝置。在iOS17和iPadOS17中,此過程仍然存在於Apple裝置之間的共享,但如果您要在iPhone或iPad之間傳輸,則可以使用AirDrop的新鄰近感應功能來減少一些典型的共享步驟。若要發起傳輸,請選擇要與他人
