我在我们的应用程序的一条语句中发现了一个奇怪的性能漏洞,该应用程序目前运行在两个节点的集群上。它就是这个方法:
private void addIdToMember( final long id, final Member executedMember )
{
this.entityIdToMemberHostname.put( id, executedMember.getInetSocketAddress( ).getHostName( ) );
}entityIdToMemberHostname映射按如下方式初始化(一次):
this.entityIdToMemberHostname = Hazelcast.getMultiMap( "entityIdToMemberHostname" );取消对addIdToMember方法的调用的注释减少了周围方法的执行时间5秒(现在只需要20ms )。
在集群中,转到Hazelcast multimap的put是否如此昂贵?
发布于 2011-09-07 15:20:45
解决方案不是获取主机名,而是获取IP来标识成员;主机名解析是问题所在。
https://stackoverflow.com/questions/7257542
复制相似问题