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 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











점점 더 많은 기업이 독점 기업 WeChat을 선택하고 있습니다. 이는 기업과 고객, 파트너 간의 의사소통을 촉진할 뿐만 아니라 업무 효율성도 크게 향상시킵니다. Enterprise WeChat에는 풍부한 기능이 있으며 그 중 화면 공유 기능이 매우 인기가 있습니다. 회의 중에 화면을 공유함으로써 참가자들은 콘텐츠를 보다 직관적으로 표시하고 보다 효율적으로 협업할 수 있습니다. 그렇다면 WeChat Enterprise에서 화면을 효율적으로 공유하는 방법은 무엇입니까? 아직 모르는 사용자를 위해 이 튜토리얼 가이드가 도움이 되기를 바랍니다. WeChat Enterprise에서 화면을 공유하는 방법은 무엇입니까? 1. Enterprise WeChat 메인 인터페이스 왼쪽의 파란색 영역에 "컨퍼런스" 아이콘이 표시됩니다. 클릭하면 세 가지 컨퍼런스 모드가 나타납니다.

사용자는 WallpaperEngine을 사용할 때 얻은 배경화면을 친구들과 공유할 수 있습니다. 많은 사용자는 자신이 좋아하는 배경화면을 로컬에 저장한 다음 소셜 소프트웨어를 통해 친구들과 공유할 수 있습니다. wallpaperengine을 친구들과 공유하는 방법 답변: 로컬에 저장하고 친구들과 공유하세요. 1. 좋아하는 배경화면을 로컬에 저장한 다음 소셜 소프트웨어를 통해 친구들과 공유하는 것이 좋습니다. 2. 폴더를 통해 컴퓨터에 업로드한 후 컴퓨터의 창작 워크숍 기능을 사용하여 공유를 클릭할 수도 있습니다. 3. 컴퓨터에서 Wallpaperengine을 사용하고 크리에이티브 워크숍의 옵션 막대를 열고

Quick Share를 사용하면 삼성 사용자가 장치 간에 파일을 전송하는 데 많은 시간을 절약할 수 있습니다. 그러나 삼성 갤럭시 사용자들은 휴대폰의 Quick Share 기능에 문제가 있다는 불만을 제기해 왔습니다. 일반적으로 빠른 공유의 가시성 문제로 인해 이 문제가 발생합니다. 따라서 이것은 Galaxy 장치의 Quick Share 기능 문제를 해결하는 데 필요한 유일한 가이드입니다. 수정 1 - 빠른 공유 가시성 설정 변경 휴대폰에서 빠른 공유 가시성 설정을 전환합니다. Quick Share가 잘못된 설정으로 설정되어 이 문제가 발생할 수 있습니다. 1단계 – 먼저 위로 한 번 스와이프하여 앱 서랍을 엽니다. 2단계 – 설정을 엽니다. 3단계 – 설정 페이지로 이동하여 연결된 장치 탭을 엽니다. 4단계 – “빠른 공유” 기능을 켭니다. 5단계

일상 생활과 직장에서 우리는 종종 서로 다른 장치 간에 파일과 폴더를 공유해야 합니다. Windows 11 시스템에는 편리한 폴더 공유 기능이 내장되어 있어 개인 파일의 개인 정보를 보호하면서 동일한 네트워크 내에서 다른 사람들과 필요한 콘텐츠를 쉽고 안전하게 공유할 수 있습니다. 이 기능을 사용하면 개인 정보 유출에 대한 걱정 없이 파일을 간단하고 효율적으로 공유할 수 있습니다. Windows 11 시스템의 폴더 공유 기능을 통해 우리는 보다 편리하게 협력하고, 소통하고 협업할 수 있어 업무 효율성과 생활 편의성이 향상됩니다. 공유 폴더를 성공적으로 구성하려면 먼저 다음 조건을 충족해야 합니다. 공유에 참여하는 모든 장치가 동일한 네트워크에 연결되어 있습니다. 네트워크 검색을 활성화하고 공유를 구성합니다. 대상 장치를 알아라

iPhone에서 연락처 사진과 포스터를 볼 수 있는 사람은 누구입니까? Apple은 다른 사람이 전화를 걸거나 메시지를 보낼 때 iPhone에 표시되는 방식을 개인화할 수 있는 옵션을 제공합니다. 옵션에는 미모티콘, 간단한 텍스트 또는 연락처 사진 및 표시 이미지로 효과가 있는 사용자 정의 사진이 포함됩니다. 언제든지 이러한 선택 사항을 자유롭게 변경하고 연락처 카드의 프로필 간에 전환할 수 있습니다. 또한 Apple은 iOS17에서 사진을 보고 액세스하거나 선택한 이미지를 표시할 수 있는 사람을 제어할 수 있는 기능을 제공합니다. 연락처 목록에 저장된 개인과 이를 공유하도록 결정하거나 연락처와 상호 작용할 때마다 메시지가 표시되도록 iPhone을 설정할 수 있습니다. 원하는 경우 이름을 영구적으로 비활성화할 수도 있습니다.

디지털 시대의 발전과 함께 공유 프린터는 현대 사무 환경에서 없어서는 안 될 부분이 되었습니다. 그러나 때로는 공유 프린터를 프린터에 연결할 수 없는 문제가 발생할 수 있으며, 이는 작업 효율성에 영향을 미칠 뿐만 아니라 일련의 문제를 일으킬 수도 있습니다. 이 문서에서는 공유 프린터가 프린터에 연결할 수 없는 이유와 해결 방법을 살펴보는 것을 목표로 합니다. 공유 프린터가 프린터에 연결할 수 없는 데에는 여러 가지 이유가 있으며, 그 중 가장 일반적인 것은 네트워크 문제입니다. 공유 프린터와 프린터 간의 네트워크 연결이 불안정하거나 중단되는 경우 정상적인 작동이 불가능합니다.

새로운 Apple iPhone15 시리즈 휴대폰이 출시되고 최신 iOS17 모바일 운영 체제가 출시되면서 Apple 기기에 다양한 새로운 기능, 조정 및 개선 사항이 적용되었습니다. 사용자는 iPhone 및 iOS17에서 새로운 NameDrop 기능을 사용하는 방법을 궁금해할 수 있습니다. 이 가이드는 iOS17에서 사용할 수 있는 새로운 NameDrop 시스템을 사용하여 연락처 정보를 빠르고 효율적으로 공유하는 방법에 대한 간략한 개요를 제공합니다. NameDrop은 iPhone 사용자가 자신의 연락처 정보를 다른 사람과 빠르게 공유할 수 있는 기능입니다. 이는 새로운 친구들과 연락처 정보를 교환해야 하는 사교 행사, 비즈니스 미팅 또는 사교 모임을 위한 편리한 도구입니다. 그러나 NameDrop은 새 연락처를 보내는 데에만 작동한다는 점에 유의하는 것이 중요합니다.

Win10 시스템 업데이트 후 프린터를 공유할 수 없는 문제를 해결하는 방법은 무엇입니까? 많은 친구들이 win10 시스템으로 업데이트한 후 프린터를 공유할 수 없다고 보고했습니다. 프린터를 공유할 수 없는 문제를 해결하는 방법을 모르는 경우 아래 편집기에서 문제를 해결할 수 있습니다. Win10 시스템 업데이트 후 프린터를 공유할 수 없는 문제에 대한 해결 방법을 정리했습니다. 관심이 있으시면 아래를 살펴보세요! Win10 시스템 업데이트 후 프린터를 공유할 수 없는 문제 해결 방법 1. 먼저 "win+r" 키를 눌러 실행 창을 열고 그림 2와 같이 "control" 명령을 입력하여 제어판 인터페이스를 엽니다. 그런 다음 열린 제어판 인터페이스에서 "프로그램 제거" 옵션을 찾아 연 다음 왼쪽을 클릭합니다.
