分布式Ehcache Terracotta使用

jopen 6年前

本文提到的不同集群指的是不同数据中心. 同一数据中心的网络可以看成LAN, 不同数据中心之间的网络指WAN.

分布式Ehcache集群间数据同步    

         EhCache 是进程中的缓存系统,一旦将应用部署在集群环境中,每一个节点维护各自的缓存数据,当某个节点对缓存数据进行更新,这些更新的数据无法在其它节点中共享, 这不仅会降低节点运行的效率,而且会导致数据不同步的情况发生。使用Terracotta Server可以实现Ehcache的集群. 而针对集群之间数据同步的问题, Terracotta提供了WAN replication的方案.

       分布式Ehcache Terracotta使用

      使用时只需要在Ehcache配置文件配置即可, 然后系统会自动在不同集群之间同步数据. 主要特性:

  •        消息缓冲

  •        解决冲突

  •        失效恢复

  •        使用ActiveMQ,支持topic,queue

  •        异步通信等等

    数据同步的范围:

  • put

  • remove

  • removeAll

    应用场景一

    不同集群使用同一个Active Terracotta Server Array,然后保证Passive Terracotta Server Array的数据同步. 这种方式对集群之间的网络要求较高.

    分布式Ehcache Terracotta使用

使用场景二

      不同的集群拥有独自的TSA, 但同步自身TSA的同时,还需要同步其它集群的TSA. 这种方式线路适合写操作比较少的应用.

分布式Ehcache Terracotta使用

使用场景三

     自定义一个replicator,从本地集群中提取更新的数据,以消息的形式发送到其它结点上. 如:在集群中使用基于ActiveMQ(AMQ)的消息队列,实现不同集群数据的同步. 这种方式实现起来更有弹性,高吞吐量,低等等. 写操作快. 只需要实现一个message bus.

分布式Ehcache Terracotta使用