• 分布式缓存集群配置


    1、EhCache缓存介绍

    Ehcache 是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。同时EhCache 扩展非常简单,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。

    以下是EhCache 的架构图:

    image

    Ehcache有以下特点:

    • 存取速度非常快,性能很不错。
    • 可以应用多种缓存策略。
    • 分级缓存,用户可以指定哪些数据在硬盘中缓存,哪些数据在内存中缓存。
    • 可以通过RMI、可插入API等方式进行分布式缓存。
    • 具有缓存和缓存管理器的侦听接口。
    • 支持多缓存管理器实例,以及一个实例的多个缓存区域。
    • 默认提供Hibernate的缓存实现。

    EhCache 从 1.7 版本开始,支持五种集群方案,分别是:

    ·         Terracotta

    ·         RMI

    ·         JMS

    ·         JGroups

    ·         EhCache Server

    JGroups 提供了一个非常灵活的协议栈、可靠的单播和多播消息传输。以下主要讨论ehcache通过JGroups模式进行分布式集群配置的步骤。

    2、基于JGroups分布式集群配置

    打开项目src->main->resources目录下的application.properties文件,修改ehcache.configFile=cache/ehcache-jgroup.xml

    image

    cache/ehcache-jgroup.xml文件里面通过配置多播,实现了自动发现集群节点的功能。

    image

    对研究jgroup配置感兴趣的好汉,可以仔细看看该文件。

    3、测试代码

    在com.woodstudio.framework.modules.demo.web.DemoCacheController.java文件中,已经编写了缓存集群的测试代码。

    image

    缓存操作已经封装在com.woodstudio.framework.common.utils.CacheUtils.java类中。

    image

    请先看看这2个文件里面的代码!

    测试页面:srcmainwebappWEB-INFviewsmodulesdemocachedemoCacheUtils.jsp

    image

    4、测试案例

    修改配置后,在2台测试服务器中分别部署2个framework项目,例如:

    http://192.168.1.11:8080/framework

    http://192.168.1.12:8080/framework

    等待2个项目启动完成,首先登陆其中一个服务器,例如:

    http://192.168.1.11:8080/framework,选择其中的缓存(集群)测试,在key和value输入值,点击【设置Cache】

    image

    再点击其中的【获取Cache】,看值是否设置成功。

    接着登陆另一个测试项目,例如:

    http://192.168.1.12:8080/framework

    选择其中的缓存(集群)测试,点击【获取Cache】,看上面步骤的Cache值是否设置成功!

     

    备注:

    EhCache 常用集群方式包括 RMI、JGroups 以及 EhCache Server,其他方式的集群配置请自行google/baidu。

     

    大功告成!

    木头大哥所发的文章均基于自身实践,各位江湖好汉可以通过:hellowood23@163.com联系之。

  • 相关阅读:
    CentOS7安装MySql5.7
    环境变量配置
    Spring 注解
    MySQL
    常用命令
    Android Studio & IntelliJ IDEA常见问题与设置
    order by、group by、having的区别
    把WebStrom添加到右键菜单
    解决github访问速度慢的问题
    docker修改时区
  • 原文地址:https://www.cnblogs.com/hellowood23/p/5210267.html
Copyright © 2020-2023  润新知