使用Hazelcast什么是更好的,一张大地图或许多小地图?

时间:2010-12-21 22:20:59

标签: java java-ee distributed-caching hazelcast

我想创建一个可以限速的速率限制系统 请求到多个服务器。 为此,我想创建计数器(每个ip的1个计数器 地址) 这样,所有服务器都可以检查和更新这些计数器。

我的问题:什么是最好的方法,创建一个地图并使用ip 客户端的地址作为密钥和该ip的计数器 在java对象中。该对象将是映射条目的值。

为每个IP地址创建一个映射,并使用计数器名称作为键和 计数器值作为条目(int)的值

我的关键优先事项是速度。检索计数器对象和 递增它必须非常快。

那最好的是什么?许多小地图或一张大地图?

我希望有人能帮助我。

的问候,

马腾

1 个答案:

答案 0 :(得分:0)

速率限制计数器很可能是系统中最具争议的对象之一。我不知道Hazelcast地图的表现是否足够好。

您可以查看Hazelcast 1.9中的AtomicNumber界面,但我不知道您是否可以创建任意多个这些对象(或者即使您可以在创建后处置它们)。

您最好的选择可能是使用HAProxy或类似的负载均衡器在您的应用服务器前实施限制规则。