jboss datagrid7.0学习(3)cache

■Cache-Container

cache是JBoss Datagrid的核心,使用cache之前,先了解一下另外一个概念,那就是cache-Container。Cache-Container是Cache的上层,一个Cache-Container中会有多个Cache。而一个Datagrid实例中也可以存在多个Cacher-Container.



 

■Cache的模式

Cache的模式主要可以分为本地(local)模式和集群(cluster)模式.

 

1.本地模式

以简单的单结点缓存模式动作。本地模式是不需要扩展以及failover的场合下效果最好的缓存方式,相比于cluster模式,性能要高。以local-cache要素在cache-conatiner要素中定义的。

 

2.集群模式

集群模式又可以分为如下几种集群模式,根据不同的需求可以选择不同cache模式,但是我觉得最常用的应该是分布式模式。

 

1)复制(replication)模式

当数据被添加到集群中的一个节点上时,将会复制到集群中其他所有节点上,同样在网格中的任何一个节点可以获取集群中所有的数据。它是以replicated-cache要素定义在cache-container要素里的。



 使用场景:

复制模式用来在集群中共享状态,但复制模式的性能考虑集群网格的个数应该小于10,这是因为集群中任何一个点上状态的变化都需要复制到其他的节点上,如果集群网格中节点太多,大量的消息需要在节点之间进行传输,网络传输的压力会影响集群的性能。复制模式中消息通常采用多播的方式传播,这可以在一定程度上提高性能。复制模式中,GET操作的返回都是从本地返回而不需要远程调运,这使得查询速度更快,这也是复制模式的优势所在。

 

2)无效(invalidation)模式

 集群的各节点之间数据不共有,当在集群中的某个结点上将存的一条数据修改后,会通知拥有该数据的结点将之前无效的数据删除。它是以invalidation-cache要素定义在cache-container要素里的。


 

使用场景:

此缓存模式只有在其他的永久存储,如关系型数据库存在时才有意义,该模式通常用来优化那些读操作频繁的系统,使用Infinispan作为基于数据库之上的缓存,这样防止每次读取状态都需要进入数据库。如果缓存配置为失效而不是复制,每次当一个节点上的数据发生改变,集群中的其他节点会收到一条消息,通知他们该数据已经陈旧了,应该从缓存中驱逐。 

 

3)分布式(distribution)模式

缓存条目保存在网格节点的一个子集上,而不是网格中每个节点都保存一份缓存条目。通常为了数据的备份和网格的容错能力,缓存条目保存在两个或两个以上的节点上。和其他集群的模式相比,由于缓存条目保存在网格节点子集上,使得在可扩展性上优于其他模式。它是以distributed-cache要素定义在cache-container要素里的。

在Distribution模式中,一个put操作会运行num_copies次远程调用,相同在随意节点的get操作会运行至少一次的远程调用。实际上,get操作甚至也会运行num_copies次远程调用。但它们是并行的,仅仅要有一个返回。结果就会被返回给调用者。数据备份的数量由Owners属性决定的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值