2011-08-31 27 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来识别成员;主机名解析是问题。