如何利用OCS缓存TomcatSession全局变量(转)
转:
首先非常感谢阿里云给我们提供了一个如此省事的平台。
我们公司是一家物流公司,主要提供运输和仓储的服务。我们现在正在把我们的系统往阿里云迁移。当然,还在迁移过程中,所以还有很多是没办法现在说得太清楚。但鉴于现有估计用阿里云的公司或个人越来越多,确实没有一个在阿里云搭建基于ECS的Tomcat集群的教程。我这就给大伙献丑了。这是个入门教程,同时其中也存在问题,还望大家指正。 首先,我们明确目标,做Tomcat集群的目的是为了提供更高的负载能力,把访问均摊到不同的服务器上。为此我们准备的配置清单是: SLB x 1 ECS x 2 OCS x 1 RDS x 1 我们系统使用的软件也是应用厂商提供,不像阿里的技术那么牛逼,所以其内部还是使用了如Session等之类的标准技术。而我们对于集群的定义就是可以保持Session,确保用户登录后正常使用。 在阿里云或者是其他方式玩集群一般也都分为两种模式,一种是完全集中SESSION,各个集群点保持一致;还有一种就是基于一次会话指定某一个集群中节点提供服务。这个可能没说太明白,那么请参考SLB的资料,SLB其中有个是否保存会话(这个就对应到我们TOMCAT里面的配置模式是采用STICKY or NON-STICKY模式),本分享会说到两种模式,并且也会讨论关于我们在使用中发现的问题(这不会是我司部署的最终版本,因为我们每天都还在不断调整)。 首先,ECS要安装TOMCAT和JDK。这个很简单,网上很多教程。 我这就不介绍了。我们用的是TOMCAT7 以及 JDK7。建议TOMCAT先下载到自己电脑,配置好了再上传到ECS。 Step.1 TOMCAT增加memcached支持的lib包 我们需要memcached-session-manager,http://code.google.com/p/memcached-session-manager/。其中文档说得比较明确,参考其中去配置就好。 那么在本步骤中,我们主要是下载一些lib,在上面链接中的文档中有给出。自己找下啦。把下载到的lib放到Tomcat/lib目录里面(注意每个文件前缀的“msm-”这个本来是没有的,是我为了方便管理加的),有了这些包之后就可以配置TOMCAT连接到OCS啦: Step.2 TOMCAT同步Session到OCS 这个步骤就是具体配置了。前面说到有两种模式:STICKY or NON-STICKY。 STICKY:负载均衡会根据用户会话,每次都分配到同一个集群节点上。用户每次获取会话数据都是从TOMCAT里面取得,TOMCAT会备份一个SESSION到OCS。 这样可以保持获取SESSION的最高效。 NON-STICKY:负载均衡不会管用户会话,而是按每次连接分别分发的方式,会话都保持在OCS上,每次读写都在OCS上。由于会远程访问数据,所以效率会低一些,但是这种却是最符合集群或集中缓存预期效果的。 关于连接到OCS的配置,都是在/Tomcat/conf/context.xml中编辑,在<Context>元素下增加下述的配置描述即可。 下面我们分别说两种的配置(只能有一种模式,千万别写两个上去了): STICKY模式
NON-STICKY模式
其实配置是不是很简单呐,总之里面配置跟连接Memcached是一样的,所以我对阿里的这种设计非常之赞赏。
修改NIO设置在/Tomcat/conf/context.xml
Step.4 创建一个检查SESSION的JSP
Step.5 上传你配置好的TOMCAT到ECS [ 此帖被Happy_Tian在2014-11-07 13:06重新编辑 ]
|
|||||
|
如何利用OCS缓存TomcatSession全局变量(转)的更多相关文章
- 如何利用OCS存取PHP session全局变量
如何利用OCS存取PHP session全局变量 阿里云技术团队:余汶龙 一.场景介绍 用户在利用PHP搭建网站时,会把一些信息存放在$_SESSION全局变量里,可以很方便的存取.在PHP的in ...
- 【阿里云产品公测】在Laravel4框架中使用阿里云OCS缓存
作者:阿里云用户 supechina Laravel 是我最近用得非常多而且越用就越喜欢的一款PHP框架,由于没有向下兼容的历史包袱,完全面向对象的风格,借助 Facades 优雅的 IoC Cont ...
- CommonsChunkPlugin并不是分离第三方库的好办法(DllPlugin科学利用浏览器缓存)
webpack算是个磨人的小妖精了.之前一直站在glup阵营,使用browserify打包,发现webpack已经火到爆炸,深怕被社区遗落,赶紧拿起来把玩一下.本来只想玩一下的.尝试打包了以后,就想启 ...
- 阿里云的OCS缓存机制
OCS简介 OCS( Open Cache Service)为分布式高速缓存服务,主要实现热点数据的快速响应: OCS支持Key/Value的数据结构,兼容memcachebinary protoco ...
- webpack分离第三方库(CommonsChunkPlugin并不是分离第三方库的好办法DllPlugin科学利用浏览器缓存)
webpack算是个磨人的小妖精了.之前一直站在glup阵营,使用browserify打包,发现webpack已经火到爆炸,深怕被社区遗落,赶紧拿起来把玩一下.本来只想玩一下的.尝试打包了以后,就想启 ...
- 【译】AS3利用CPU缓存
利用CPU缓存 计算机有随机存取存储器RAM(译注:即我们常说的内存),但有更快形式的存储器.如果你希望你的应用程序的快速运行,你需要知道这些其他的存储器.今天的文章中讨论了它们,并给出了两个AS ...
- [WebGL入门]十八,利用索引缓存来画图
注:文章译自http://wgld.org/.原作者杉本雅広(doxas),文章中假设有我的额外说明.我会加上[lufy:].另外,鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家指 ...
- Web Api 内部数据思考 和 利用http缓存优化 Api
在上篇<Web Api 端点设计 与 Oauth>后,接着我们思考Web Api 的内部数据: 其他文章:<API接口安全加强设计方法> 第一 实际使用应该返回怎样的数据 ? ...
- 利用DNS缓存和TLS协议将受限SSRF变为通用SSRF
本文首发于先知社区 前言 这是今年BlackHat上的一个议题:When TLS Hacks You,作者是latacora的Joshua Maddux 议题提出了一个新的ssrf攻击思路,利用DNS ...
随机推荐
- 几个与特殊字符处理有关的PHP函数
函数名 释义 介绍 htmlspecialchars 将与.单双引号.大于和小于号化成HTML格式 &转成&"转成"' 转成'<转成<>转成> ...
- 关于MATHAPP的测试
这是我个人的单元测试博客仅供参考,想了解更全面的信息可请见我们团队的博客http://www.cnblogs.com/xjy-gg/p/5422868.html 首先,从世界那里下载adt-bundl ...
- Search in Rotated Sorted Array II leetcode
原题链接,点我 该题解题参考博客 和Search in Rotated Sorted Array唯一的区别是这道题目中元素会有重复的情况出现.不过正是因为这个条件的出现,出现了比较复杂的case,甚至 ...
- 【整理】-- C++ 多线程
os:ubuntu c++ 1.创建线程 #include <iostream> #include <pthread.h> //多线程相关操作头文件,可移植众多平台 usi ...
- CSS的四种引入方式
1.使用link标签引入css文件: <head> <link rel="stylesheet" type="text/css" href=& ...
- Dynamic CRM 2013学习笔记(二十)字段改变事件的二种实现方法
CRM里有二种方式实现字段change事件,一种是在form里,一种完全通过js来实现.本文介绍下二者的用途及区别. 1. Form里用法 这种方式估计其实也是添加一个js的function. 这种方 ...
- C#设计模式(23)——备忘录模式(Memento Pattern)
一.引言 在上一篇博文分享了访问者模式,访问者模式的实现是把作用于某种数据结构上的操作封装到访问者中,使得操作和数据结构隔离.而今天要介绍的备忘者模式与命令模式有点相似,不同的是,命令模式保存的是发起 ...
- 学习WPF——了解路由事件
入门 我们先来看一个例子 前台代码: 后台代码: 点击按钮的运行效果第一个弹出窗口 第二个弹出窗口: 第三个弹出窗口: 说明 当点击按钮之后,先触发按钮的click事件,再上查找,发现stackpan ...
- 对MySql查询缓存及SQL Server过程缓存的理解及总结
一.MySql的Query Cache 1.Query Cache MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集.MySql在实现Query Cache的 ...
- [RabbitMQ] Connection failed
RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachabl ...