设为首页 收藏本站
查看: 1337|回复: 0

[经验分享] 服务器安装Apache+Tomcat+Memcached共享Session的构架设计

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-9-2 05:54:24 | 显示全部楼层 |阅读模式
  本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~
  
网站集群部署解决计划
  一、       计划目标
  实现互动留言系统、后台发布系统的高可用性,有效解决高并发量对单台应用服务器的打击,确保应用服务器单点故障不影响系统正常运行。
  二、       部署架构
  采取Tomcat集群的部署方法,Apache通过proxy_module代理方法对用户的请求进行负载均衡,转发至tomcat集群中的某一实例进行处置,tomcat集群之间通过Memcached高性能缓存集群共享速决Session。详细结构如下图:
DSC0000.jpg
  三、       完整解决计划
  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
  <Proxy balancer://cluster>
  BalancerMember ajp://10.10.19.2:8009 route=jvm1
  BalancerMember ajp://10.10.19.3:8009 route=jvm2
  </Proxy>
  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
  <Proxy balancer://cluster>
  BalancerMember ajp://10.10.19.4:8009route=jvm3
  BalancerMember ajp://10.10.19.5:8009route=jvm4
  </Proxy>
  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:
  <Context>
  <ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  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"
  />
  </Context>
  l  Tomcat互动留言服务器NO.2:
  <Context>
  <ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  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"
  />
  </Context>
  l  出产服务器NO.1:
  <Context>
  <ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  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"
  />
  </Context>
  l  出产服务器NO.2:
  <Context>
  <ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  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"
  />
  </Context>
  
  参考文章
  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.iyunv.com/ichsonx/article/details/6911358
  4、        http://www.iyunv.com.com/Linux/2012-08/69312.htm
  
  
  
  文章结束给大家分享下程序员的一些笑话语录: 打赌
飞机上,一位工程师和一位程序员坐在一起。程序员问工程师是否乐意和他一起玩一种有趣的游戏。工程师想睡觉,于是他很有礼貌地拒绝了,转身要睡觉。程序员坚持要玩并解释说这是一个非常有趣的游戏:"我问你一个问题,如果你不知道答案,我付你5美元。然后你问我一个问题,如果我答不上来,我付你5美元。"然而,工程师又很有礼貌地拒绝了,又要去睡觉。  程序员这时有些着急了,他说:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,这的确起了作用,工程师答应了。程序员就问:"从地球到月球有多远?"工程师一句话也没有说,给了程序员5美元。  现在轮到工程师了,他问程序员:"什么上山时有三条腿,下山却有四条腿?"程序员很吃惊地看着工程师,拿出他的便携式电脑,查找里面的资料,过了半个小时,他叫醒工程师并给了工程师50美元。工程师很礼貌地接过钱又要去睡觉。程序员有些恼怒,问:"那么答案是什么呢?"工程师什么也没有说,掏出钱包,拿出5美元给程序员,转身就去睡觉了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-108461-1-1.html 上篇帖子: memcached内存分配及回收初探 下篇帖子: memcached完全剖析–1. memcached的基础 ZT
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表