在单节点地图上,Hazelcast比Ignite慢得多

时间:2020-09-09 09:56:26

标签: benchmarking hazelcast ignite

我在Hazelcast上运行了一个简单的基准测试(使用JMH),并将其与Apache Ignite进行了比较。 这是用于单节点部署。

默认保留缓存配置

final Config config = new Config();
return Hazelcast.newHazelcastInstance(config);

然后我在地图上使用putget

private IMap<Long, Customer> normalCache = hazelcast.getMap( CacheName.NORMAL.getCacheName());
public void saveToCache(Customer customer) {
    normalCache.put(customer.getId(), customer);
}

从结果看,Ignite似乎比Hazelcast快3-4倍。
我发现差异会小很多。
无论是对于Ignite还是Hazelcast,我都没有使用任何其他优化(靠近缓存等),只是采用了默认配置(结果以ops / sec,吞吐量为单位)。

enter image description here

这是预期的性能差异还是结果错误?

2 个答案:

答案 0 :(得分:7)

请在客户端服务器设置中运行,或者在多个节点上运行。

如果发生Ignite,则AFAIK如果已完成本地调用,则将在调用线程上完成,而不是卸载到分区线程中。

对于基准测试来说不错,在生产环境中不是很有用,因为大多数调用都不是本地的(在安装客户端服务器的情况下,没有本地调用)。

答案 1 :(得分:3)

您正在使用分布式系统进行单节点部署???真的,不要那样做,就像用保时捷在泥泞的田野上开车。如果您要单节点尝试其他功能,例如EhCache,我猜您不需要高可用性,备份等。

如果要在Ignite或Hazelcast中进行选择,请运行真实的分布式测试。使用“客户端/服务器”启动3个节点,然后查看哪个节点最快。