我們嵌入了具有10個aws實例的hazelcast集羣。 hazelcast的版本是3.7.3的hazelcastHazelcast:爲集羣中存在臨時網絡故障的節點調整屬性
hazelcast.max.no.heartbeat.seconds=30
hazelcast.max.no.master.confirmation.seconds=150
hazelcast.heartbeat.interval.seconds=1
hazelcast.operation.call.timeout.millis=5000
hazelcast.merge.first.run.delay.seconds=60
除了上面的設置其他屬性值是默認的現在,我們有以下設置。
最近有一個節點在幾分鐘左右時間內無法訪問,有些操作在從緩存中獲取內容時速度變慢。我們爲每個地圖都有備份,所以如果一個分區沒有可用的東西,hazelcast應該從另一個分區做出響應,但是由於一個節點不可達,所以似乎一切都變慢了。
以下是我們在榛木日誌中看到的例外情況。
[3.7.2] PartitionIteratingOperation調用未能完成由於 到操作心跳超時。當前時間:2017-05-30 16:12:52.442。 總經過時間:10825毫秒。上次手術心跳:從不。最後 成員操作心跳:2017-05-30 16:12:42.166。 Invocation {op = com.hazelcast.spi.impl.operationservice.impl.operations.PartitionIteratingOperation {serviceName ='hz:impl:mapService', identityHash = 1798676695,partitionId = -1,replicaIndex = 0,callId = 0, invocationTime = 1496160761670(2017-05-30 16:12:41.670), waitTimeout = -1,callTimeout = 5000, operationFactory = [email protected]ab7},tryCount = 10,tryPauseMillis = 300,invokeCount = 1, callTimeoutMillis = 5000,firstInvocationTimeMs = 1496160761617, firstInvocationTime ='2017-05-30 16:12:41.617',lastHeartbeatMillis = 0, lastHeartbeatTime ='1970-01-01 00:00:00.000' , target = [172.18.84.36]:9123,pendingResponse = {VOID}, backupsAcksExpected = 0,backu psAcksReceived = 0, connection = Connection [id = 12,/172.18.64.219:9123->/172.18.84.36:48180, endpoint = [172.18.84.36]:9123,alive = true,type = MEMBER]}
有人可以建議什麼應該是正確的榛樹設置,以便一個節點臨時不可達不會減慢整個羣集?
是的,我們已將它設置爲5秒。但是我們如何確保如果get請求從多個備份分區中檢索數據,以及如果主分區速度很慢? –
將其保留爲默認值。否則你會遇到上述問題。 – pveentjer