码迷,mamicode.com
首页 > Web开发 > 详细

AWS中使用Memcached作为hibernate的二级缓存

时间:2015-08-06 00:34:00      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

我想做互联网的都会接触到云。认识的很多人他们用的阿里云,我们选择的是AWS 。

我想国内用AWS的也会慢慢的增多,自动扩展服务器可以防止攻击,中国区第二个机房也已经建好了。保证了高可用。但是有一个问题就是论坛上资料全是英文的,这个一点没法和阿里云比,都是中文。

和大多数互联网产品一样,我们还处于初期开发阶段,但是用到的aws的服务还是很多的。

我们选择了Memcached作为haibernate的二级缓存,因为AWS本身托管Memcached服务,集群环境不需要我们自己搭建。

和大多数人一样,开始找一些配置memcached的资料。很简单网上都能找到。自己先搭了一台memcached服务器在自己虚拟机中,启动项目OK没有问题。但是放到AWS上就是不行。

我想如果用AWS的服务的公司总会遇到这样的问题。小米,360等都在用AWS,至于他们的开发者没有写个博客或者啥的,可能觉得这个问题太小,但是于我来说,分享总是好的,给有需要的人。

开始我也是百度,参考一些文章,找的文章很多。这里随便转载一篇作为参考:http://blog.csdn.net/zfrong/article/details/5112395

那么现在说重点:

问题就在于这几个jar包。查看AWS的官方文档,他说他们在spymemcached的基础上写了一个memcached的客户端,可以进行集群节点的自动发现,不需要我们自己配集群服务器的ip。那么好。我就吧原来的memcached.jar,spymemcached.jar删除,然后再去启动,结果就是报错。说是方法签名不对。这个问题困扰了我一天。然后就懒得想找个问题了。反正现在一台服务器跑也没问题。。。哈哈哈哈。

最后选择去看hinernate-memcached.jar的源码   源码托管在 https://github.com/raykrueger/hibernate-memcached

然后找到AWS 连接memcached的客户端源码 https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-java

这些都是开源的。然后发现hibernate-memcached中还缺少依赖。找到Memcached-Java-Client-3.0.2.jar这个jar

然后对hibernate-memcached做了部分修改。经过测试,可以使用memcached作为二级缓存。

下面就是配置文件:

<!-- memcached 二级缓存配置-->	 
			<property name="hibernate.cache.provider_class" value="com.googlecode.hibernate.memcached.MemcachedCacheProvider"/>
					
			<!--  设置memcached缓存服务器的端口 -->
		 	<property name="hibernate.memcached.servers" value="xxxxxxxxxx.cache.amazonaws.com.cn:11211"/>
		 	<!--设置二级缓存的前缀名称 -->
			<property name="hibernate.cache.region_prefix" value="quality.cache.ehcache"/>
			<property name="hibernate.cache.use_query_cache" value="true"/>
			<property name="hibernate.cache.use_second_level_cache" value="true"/>
			<!--是否使用结构化的方式缓存对象 -->
			<property name="hibernate.cache.use_structured_entries" value="true"/>
			<property name="hibernate.cache.operationTimeout" value="300000"/>
			<property name="hibernate.memcached.cacheTimeSeconds" value="1200"/>
			<!-- -->
			<property name="hibernate.memcached.memcacheClientFactory" value="com.googlecode.hibernate.memcached.spymemcached.SpyMemcacheClientFactory"/>
			<property name="hibernate.memcached.connectionFactory" value="BinaryConnectionFactory"/>
和基本的配置一样,只是换一下地址。

重点就是修改后的jar文件。

下载地址:http://download.csdn.net/detail/cctv99999999/8965055

然后删除memcached.jar和spymemcached.jar和hibernate-memcached.jar。使用下载的三个jar文件就ok了

版权声明:本文为博主原创文章,未经博主允许不得转载。

AWS中使用Memcached作为hibernate的二级缓存

标签:

原文地址:http://blog.csdn.net/cdnsa/article/details/47304881

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!