分布式Ehcache Terracotta使用
jopen
11年前
本文提到的不同集群指的是不同数据中心. 同一数据中心的网络可以看成LAN, 不同数据中心之间的网络指WAN.
分布式Ehcache集群间数据同步
EhCache 是进程中的缓存系统,一旦将应用部署在集群环境中,每一个节点维护各自的缓存数据,当某个节点对缓存数据进行更新,这些更新的数据无法在其它节点中共享, 这不仅会降低节点运行的效率,而且会导致数据不同步的情况发生。使用Terracotta Server可以实现Ehcache的集群. 而针对集群之间数据同步的问题, Terracotta提供了WAN replication的方案.
使用时只需要在Ehcache配置文件配置即可, 然后系统会自动在不同集群之间同步数据. 主要特性:
-
消息缓冲
-
解决冲突
-
失效恢复
-
使用ActiveMQ,支持topic,queue
-
异步通信等等
数据同步的范围:
-
put
-
remove
-
removeAll
应用场景一
不同集群使用同一个Active Terracotta Server Array,然后保证Passive Terracotta Server Array的数据同步. 这种方式对集群之间的网络要求较高.
使用场景二
不同的集群拥有独自的TSA, 但同步自身TSA的同时,还需要同步其它集群的TSA. 这种方式线路适合写操作比较少的应用.
使用场景三
自定义一个replicator,从本地集群中提取更新的数据,以消息的形式发送到其它结点上. 如:在集群中使用基于ActiveMQ(AMQ)的消息队列,实现不同集群数据的同步. 这种方式实现起来更有弹性,高吞吐量,低等等. 写操作快. 只需要实现一个message bus.