C6架构重构 - service-cache模块(基于Simple-Spring-Memcached)

2014-12-01 21:10:25

请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)

一、概述

    Simple-Spring-Memcached(简称ssm),它是一个通过Annatation与AOP来完成缓存数据操作的开源项目。

    支持两种Memcached Java Client (spymemcached,Xmemcached)。

    我选择了Xmemcached。


二、集成依赖的第三方包

  •  在settings.xml中加入仓库

    <repository>

       <id>my-alternate-repository</id>

       <url>http://myrepo.net/repo</url>

    </repository>

  • 在该模块的pom.xml中引入依赖的jar

    cache_dep.jpg

    前面两个依赖是系统的Craft6的基础模块,只是提供一些常量和工具类。

三、配置文件

  • cache-context.xml
    cache.xml.jpg

    仅是扫描com.google.code.ssm包,将第三方jar的类加载到spring容器内。

  • cache-xmemcached.xml
    cache-x.jpg

    这是最基础的配置。主要要注意的是address,如果涉及多个host:port,用空格或英文逗号分隔即可。

四、Windows下配置memcached单机服务

参考:http://blog.csdn.net/wusuopubupt/article/details/9128431

五、一些基本概念

  • namespace

    命名空间,一般建议按类名(带包路径)命名,比如用户、产品等。

  • @ParameterValueKeyProvider 即缓存的键

    对应数据表一般就是主键或唯一键了,如userId、userAccount等。

  • expiration

    表示存入缓存的时间,单位是秒。


六、注解式使用

CSDN有篇文章写得非常详细,我就不做冗述了,请参考:

http://blog.csdn.net/heng_ji/article/details/28662443

七、分布式部署

    memcached在实际使用中,除了小型的系统,否则都是需要进行分布式部署。

    相关部署文章可以参考:http://blog.csdn.net/zhsj1106/article/details/7887159

    部署原理是以magent为代理,带若干个主memcached服务器及端口、备份的memcached服务器和端口。

八、针对分布式部署的配置调整

同样是刚才的cache-xmemcached配置,但是增加了些内容:


cache-x-d.jpg

  1. address

    配置多个host:port,逗号或空格分隔,使用配置文件管理其值。

  2. configuration 使用 XMemcachedConfiguration

    1. consistentHashing 是否使用一致性哈希

      即对key根据该算法映射到一台memcached服务器。

      一致性哈希的数值是一个首尾相接的环,在这个环形空间中,沿着顺时针方向从对象的 key 值出发,
      直到遇见一个 cache ,那么就将该对象存储在这个 cache 上,因为对象和 cache 的 hash 值
      (一般以IP地址或机器名作为hash输入)是固定的,因此这个 cache 必然是唯一和确定的。

    2. connectionPoolSize

      根据实际需要配置。参考例子:1000并发用户,配置数值为:25。

  3. optimizeGet 将多个获取命令优化合并为一个多获取命令。

  4. cacheName 当存在多个Memcached需要配置,否则会重名。
    当需要注意的是在相应的方法上要加上CacheName注解,如下图:
    cacheName.jpg

九、序列化方式

    simple-spring-memcached提供了4种序列化方式,分别是

  • PROVIDER 默认的序列化方式,即简单的将要缓存的对象序列化保存到memcached中,要缓存的对象必须实现序列化接口。

  • JAVA:使用Java的序列化机制,支持数据压缩(GZIP)。

  • JSON:使用JSON字符串形式保存数据。

  • CUSTOM:自定义,需要注册到配置中。


可通过扫描左侧二维码阅读本文。本站文章均为颜超敏原创,欢迎转载,请注明出处即可,转载可通过下面的社会化工具快速完成。

分享到:


C6架构重构 - service-cache模块(基于Simple-Spring-Memcached)

Simple-Spring-Memcached,Xmemcached

本文阐述了C6开发架构中,对simple-spring-memcached的集成、使用和知识整理。

颜超敏,唯心六艺,Craft6.cn,电子商务博客,电子商务研发,电商研发,电子商务研究,电商研究,电子商务专家,电商专家,电子商务知识,电商知识,电子商务教程,电商教程,电子商务模式,电子商务平台,电子商务商业模式,电子商务数据库设计,电商数据库设计,电子商务系统分析,Java架构设计,Java软件架构,B2C,O2O,o2o模式,o2o电子商务,o2o电子商务平台,中国电子商务,电子商务平台建设方案
粤ICP备14060523号 Copyright @2014 -唯心六艺软件