标签:
我想做互联网的都会接触到云。认识的很多人他们用的阿里云,我们选择的是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