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 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ユーザーは、WallpaperEngine を使用する際に、入手した壁紙を友人と共有することができますが、多くのユーザーは、WallpaperEngine を友人と共有する方法を知りませんが、お気に入りの壁紙をローカルに保存し、ソーシャル ソフトウェアを通じて友人と共有することができます。壁紙エンジンを友達と共有する方法 答え: ローカルに保存して友達と共有します。 1. お気に入りの壁紙をローカルに保存し、ソーシャル ソフトウェアを通じて友人と共有することをお勧めします。 2. フォルダー経由でコンピューターにアップロードし、コンピューターのクリエイティブ ワークショップ機能を使用して [共有] をクリックすることもできます。 3. コンピュータでWallpaperengineを使用し、クリエイティブワークショップのオプションバーを開き、

企業専用の WeChat を使用する企業が増えています。これにより、企業と顧客およびパートナー間のコミュニケーションが容易になるだけでなく、作業効率も大幅に向上します。エンタープライズ WeChat は機能が豊富で、その中でも画面共有機能は非常に人気があります。会議中、画面を共有することで、参加者はより直感的にコンテンツを表示し、より効率的に共同作業を行うことができます。それでは、WeChat Enterprise で効率的に画面を共有する方法をまだ知らないユーザーのために、このチュートリアル ガイドで詳しく説明します。 WeChat Enterprise で画面を共有するにはどうすればよいですか? 1. Enterprise WeChat のメインインターフェイスの左側の青い領域に機能のリストが表示され、「会議」アイコンが表示され、クリックして入力すると、3 つの会議モードが表示されます。

Quick Share を使用すると、Samsung ユーザーはデバイス間でファイルを転送する時間を大幅に節約できます。しかし、Samsung Galaxy ユーザーは、携帯電話のクイックシェア機能で問題に直面していると不満を述べています。通常、クイック共有の可視性の問題がこの問題の原因となります。したがって、これは、Galaxy デバイスのクイック共有機能のトラブルシューティングに必要な唯一のガイドです。解決策 1 – クイック共有の公開設定を変更する 電話機でクイック共有の公開設定を切り替えます。クイック共有が間違った設定に設定されていることが、この問題の原因となっている可能性があります。ステップ 1 – まず、上に 1 回スワイプしてアプリドロワーを開きます。ステップ 2 – そこに到達したら、[設定] を開きます. ステップ 3 – [設定] ページに移動し、[接続されたデバイス] タブを開きます。ステップ 4 – 「クイック共有」機能をオンにします。ステップ5

日常生活や仕事では、異なるデバイス間でファイルやフォルダーを共有する必要があることがよくあります。 Windows 11 システムには便利なフォルダー共有機能が組み込まれており、個人ファイルのプライバシーを保護しながら、同じネットワーク内の他のユーザーと必要なコンテンツを簡単かつ安全に共有できます。この機能により、個人情報の漏洩を心配することなく、ファイル共有が簡単かつ効率的になります。 Windows 11 システムのフォルダー共有機能を通じて、共同作業、通信、コラボレーションがより便利になり、仕事の効率と生活の利便性が向上します。共有フォルダーを正常に構成するには、まず次の条件を満たす必要があります。 (共有に参加している) すべてのデバイスが同じネットワークに接続されている。ネットワーク探索を有効にし、共有を設定します。ターゲットデバイスを知る

新しい Apple iPhone15 シリーズ携帯電話の発売と最新の iOS17 モバイル オペレーティング システムの発売により、豊富な新機能、調整、機能強化が Apple デバイスにもたらされました。ユーザーは、iPhone と iOS17 の新しい NameDrop 機能の使用方法を疑問に思っているかもしれません。このガイドでは、iOS17 で利用できる新しい NameDrop システムを使用して連絡先情報を迅速かつ効率的に共有する方法の概要を説明します。 NameDrop は、iPhone ユーザーが自分の連絡先情報を他のユーザーとすばやく共有できる機能です。これは、新しい友人と連絡先の詳細を交換する必要がある社交イベント、ビジネス会議、または社交的な集まりに便利なツールです。ただし、NameDrop は新しい連絡先の送信にのみ機能することに注意することが重要です。

デジタル時代の発展に伴い、共有プリンターは現代のオフィス環境に欠かせないものとなっています。しかし、場合によっては共有プリンターに接続できないという問題が発生し、作業効率に影響を与えるだけでなく、トラブルが続発してしまうこともあります。この記事は、共有プリンターがプリンターに接続できない理由と解決策を探ることを目的としています。共有プリンタがプリンタに接続できない理由は数多くありますが、最も一般的なのはネットワークの問題です。共有プリンターとプリンター間のネットワーク接続が不安定または切断されると、正常に動作できなくなります。

iPhone であなたの連絡先の写真やポスターを閲覧できるのは誰ですか? Apple は、相手が電話をかけたりメッセージを送信したりするときに、その人の iPhone に自分がどのように表示されるかをカスタマイズするオプションを提供しています。オプションには、ミー文字、単純なテキスト、または連絡先の写真や表示画像として効果を備えたカスタム写真が含まれます。これらの選択はいつでも自由に変更でき、連絡先カード上のプロファイルを切り替えることができます。さらに、Apple は、iOS17 で写真を閲覧およびアクセスできるユーザーを制御したり、選択した画像を表示したりできる機能を提供します。これらを連絡先リストに保存されている個人と共有するか、連絡先とやり取りするたびにメッセージを表示するように iPhone を設定することができます。必要に応じて、名前を永久に無効にすることもできます

iOS 17 では、Apple は、ほとんどの作業を自動的に実行するクールな新しい AirDrop 近接機能のおかげで、ファイルとメディアの共有をこれまでより簡単にします。以前のバージョンの iOS では、Apple デバイス間でファイルや写真を転送するには、関連するファイルを開いて、[共有] ボタンをタップし、AirDrop を選択して、ファイルの送信先となる近くのデバイスを選択する必要がありました。 iOS17 および iPadOS17 では、Apple デバイス間の共有のためにこのプロセスが引き続き存在しますが、iPhone または iPad 間で転送する場合は、AirDrop の新しい近接検知機能を使用して、一般的な共有手順の一部を省略できます。転送を開始するには、
