我使用带有spring boot的hazelcast 3.9作为缓存后端,并使用多个分布式map作为缓存的数据结构。映射的大多数配置参数都是通用的,如备份计数、驱逐策略等,但也有一些参数可能不同,如生存时间。
有没有什么方法可以让我有一个通用的地图配置,我可以在不同地图的配置中作为参考?
我发现一些人在一些开放源码仓库中使用<map name="default">,看起来他们希望这个配置会被其他地图配置覆盖,但它对我不起作用。
这是我目前使用的配置:
<?xml version="1.0" encoding="UTF-8"?>
<hazelcast
xsi:schemaLocation="http://www.hazelcast.com/schema/config https://hazelcast.com/schema/config/hazelcast-config-3.9.xsd"
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<group>
<name>something</name>
<password>something</password>
</group>
<properties>
<property name="hazelcast.partition.count">83</property>
</properties>
<management-center enabled="true" update-interval="3">http://localhost:8081/mancenter</management-center>
<network>
<join>
<multicast enabled="true"/>
</join>
</network>
<map name="map1">
<!--<max-size policy="PER_NODE">273</max-size>-->
<max-size policy="USED_HEAP_PERCENTAGE">20</max-size>
<eviction-policy>LFU</eviction-policy>
<statistics-enabled>true</statistics-enabled>
<backup-count>0</backup-count>
<async-backup-count>1</async-backup-count>
<read-backup-data>true</read-backup-data>
<time-to-live-seconds>10800</time-to-live-seconds> <!--3 hours-->
</map>
<map name="map2">
<!--<max-size policy="PER_NODE">273</max-size>-->
<max-size policy="USED_HEAP_PERCENTAGE">20</max-size>
<eviction-policy>LFU</eviction-policy>
<statistics-enabled>true</statistics-enabled>
<backup-count>0</backup-count>
<async-backup-count>1</async-backup-count>
<read-backup-data>true</read-backup-data>
<time-to-live-seconds>86400</time-to-live-seconds> <!--24 hours-->
</map>
</hazelcast>我对xmls的使用不是很熟悉,但我试图找到一些方法来引用其他xml元素中的xml元素,但似乎也不起作用。看起来在hazelcast配置架构中不允许DOCTYPE属性。
我还希望避免通过代码进行hazelcast配置。
发布于 2018-01-23 00:40:39
Hazelcast支持对集群中配置的大部分数据结构进行通配符配置。在名称中使用星号(*)字符,可以通过单个配置配置映射、队列、主题、信号量等的不同实例。如下例所示:
<map name="map*">
<max-size policy="USED_HEAP_PERCENTAGE">20</max-size>
<eviction-policy>LFU</eviction-policy>
<statistics-enabled>true</statistics-enabled>
<backup-count>0</backup-count>
<async-backup-count>1</async-backup-count>
<read-backup-data>true</read-backup-data>
</map>通过使用此配置,map1和map2将具有完全相同的配置。但是,如果您希望通过使用基本配置添加更多配置元素(如time-to-live-seconds),则需要使用编程配置。
https://stackoverflow.com/questions/48382952
复制相似问题