gpt4 book ai didi

java - 当 max-size-policy 为 USED_HEAP_SIZE 时,Hazelcast 驱逐无法与 Spring 一起使用。它与 max-size-policy 作为 PER_NODE 一起正常工作

转载 作者:行者123 更新时间:2023-11-30 08:19:21 26 4
gpt4 key购买 nike

此问题适用于所有 Hazelcast 版本。 (尝试过 3.2.x、3.3.x、3.4.x)我已经指定了驱逐条件,需要满足以下条件才能防止内存不足错误。但是,尽管我已经提到了最大大小,但当策略为 PER_NODE 时,当 USED_HEAP_SIZE 为策略时,不会触发驱逐。

  <hz:map name="aggregateCache" eviction-policy="LRU"  in-memory-format="OBJECT"
statistics-enabled="true"
eviction-percentage="25"
max-size="120"
max-size-policy="USED_HEAP_SIZE">

<hz:entry-listeners>
<hz:entry-listener
include-value="true"
implementation="messageEventListener" />
</hz:entry-listeners>
</hz:map>

<bean id="messageEventListener"
class="com.manheim.webservices.ovcoutbound.cep.cache.MessageEventListener" />

我触发驱逐作为 MessageEventListener 类的一部分,如下所示。公共(public)类 MessageEventListener 实现 EntryListener {

private static final String  EVICTED_MESSAGES= "direct:evictedAggregateCacheMessages";  

@Override
public void entryEvicted(EntryEvent<String, HubMessageAggregate> event) {

try{

HubMessageAggregate aggregate = event.getOldValue();
exchange.getIn().setBody(aggregate);
template.send(EVICTED_MESSAGES, exchange);
}
catch(Exception e){
String error = "Unable to process the Evicted message properly with the Key " +
event.getKey();
}

}

最佳答案

您必须将 in-memory-format="OBJECT" 更改为 in-memory-format="BINARY"

目前此请求有一个 PRD:https://hazelcast.atlassian.net/wiki/display/COM/HEP+3+-+Entry+Cost+Calculator+SPI

如果你愿意,你可以为 hazelcast 做出贡献:)

关于java - 当 max-size-policy 为 USED_HEAP_SIZE 时,Hazelcast 驱逐无法与 Spring 一起使用。它与 max-size-policy 作为 PER_NODE 一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29172718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com