在Hazelcast中,我使用客户端 - 服务器模式。群集中将有大约10个节点,并且将有多个客户端从不同的应用程序实例访问相同的缓存。你能帮我解决一下这个问题吗?
在Hazelcast的Client Server模式下,这是创建缓存的正确方法。是通过编程还是通过声明方式?我的应用程序中有多个缓存可用,它们在某些属性方面有所不同(例如驱逐配置等)。每个缓存都将由我的应用程序内的单独对象实例访问(即一个对象实例将仅使用1个缓存)。
一种方法优于另一种方法还是两种方法相同?
由于 JK
答案 0 :(得分:1)
@ JK_007,Hazelcast可以以声明方式(XML)或编程方式(API)进行配置,也可以使用两者的组合。两者都是创建缓存的正确方法。
选择权取决于您的使用案例。声明方式是定义配置的静态方式。您可以为要在应用程序中使用的每个分布式数据结构提及单独的配置集。对于例如hazelcast.xml中的以下代码段会创建名为simpleMap
的IMAP以及下面提到的配置。
<map name="simpleMap">
<backup-count>0</backup-count>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<time-to-live-seconds>30</time-to-live-seconds>
<max-size>3000</max-size>
<eviction-percentage>30</eviction-percentage>
<merge-policy>com.hazelcast.map.merge.PutIfAbsentMapMergePolicy</merge-policy>
</map>
您还可以从多个XML配置片段中定义hazelcast XML配置文件。为了做到这一点,您可以使用<import/>
元素加载不同的XML配置文件。
如果您需要在运行时定义缓存(例如,基于某些条件)以及测试,则编程方式非常有用。您可以将其视为hazelcast.xml静态特性的解决方案。
对于hazecast xml中的每个标记,您可以在Config
对象中找到它的程序化等效项。总而言之,如果您需要动态功能(添加/修改配置),请采用编程方式。如果您非常确定在运行时不需要执行任何操作,则可以使用声明方式。