假设机器 1、机器 2 和机器 3 在同一个一致性集群上。
有没有一种方法可以说,在集群中,我希望我的缓存放在机器 1 和机器 2 下,而不是机器 3 下?这种结构有什么缺点(网络问题、性能等)吗?
谢谢。
编辑:我不想要任何禁用存储的节点。每个节点都可以存储数据,但我希望他们选择他们想要存储的缓存数据。例如:Cache1:M1 OK、M2 OK、M3 NOK、Cache2:M1 NOK、M2 OK、M3 OK 等
假设机器 1、机器 2 和机器 3 在同一个一致性集群上。
有没有一种方法可以说,在集群中,我希望我的缓存放在机器 1 和机器 2 下,而不是机器 3 下?这种结构有什么缺点(网络问题、性能等)吗?
谢谢。
编辑:我不想要任何禁用存储的节点。每个节点都可以存储数据,但我希望他们选择他们想要存储的缓存数据。例如:Cache1:M1 OK、M2 OK、M3 NOK、Cache2:M1 NOK、M2 OK、M3 OK 等
我们在 Coherence 集群中所做的是启动我们不想用作“缓存节点”的 JVM,并-Dtangosol.coherence.distributed.localstorage=false
在命令行上设置属性。这允许这些 JVM 加入集群并首先访问缓存-class 集群成员,但它们实际上不是缓存的一部分。
因此,在您的示例中,机器 3 上的所有 JVM 将tangosol.coherence.distributed.localstorage
属性指定为false
,并且机器 1 和 2,如果使用此属性集true
(或没有此属性,它默认为true
)运行,将用作缓存服务器。
编辑:
我不知道实施您更新的问题的具体方法。您可以尝试为每台机器提供不同的 coherence-cache-config.xml(以便每台机器“看到”一组不同的缓存),但这个页面似乎表明它没有得到很好的支持。我希望我有一个更好的答案。