2011-08-31 26 views
1

我在我們的應用程序的一個語句中發現了一個奇怪的性能泄漏,它在當前的兩節點羣集上運行。正是這種方法:放入Hazelcast Multimap在2節點羣集上持續時間大於5秒

private void addIdToMember(final long id, final Member executedMember) 
{ 
    this.entityIdToMemberHostname.put(id, executedMember.getInetSocketAddress().getHostName()); 
} 

的entityIdToMemberHostname地圖初始化(一次),如下所示:

this.entityIdToMemberHostname = Hazelcast.getMultiMap("entityIdToMemberHostname"); 

在取消對調用addIdToMember方法descreases的周圍方法5秒執行時間(它現在只需要20ms)。

是否在集羣中使用Hazelcast multimap?

+0

每個ID的最大主機名數是多少? –

+0

目前,只有兩個 – Andreas

+1

甚至5毫秒。對於multimap.put()操作來說太多了,所以其他的東西肯定是錯誤的。嘗試單獨計時multimap.put()操作:String hostname = executedMember.getInetSocketAddress()。getHostName(); long start = System.currentTimeMillis(); multimap.put(id,hostname); System.out.println(「花了」+ System.currentTimeMillis() - 開始); –

回答

3

解決方案不是獲取主機名,而是IP來識別成員;主機名解析是問題。