Что лучше для Hazelcast, одна большая карта или много маленьких?

Я хотел бы создать систему ограничения скорости, которая может ограничивать запросы к нескольким серверам. Для этого я хотел бы создать счетчики (по 1 счетчику для каждого IP-адреса), чтобы все серверы могли проверять и обновлять эти счетчики.

Мой вопрос: каков наилучший подход, создайте одну карту и используйте IP-адрес клиента в качестве ключа, а счетчики для этого IP-адреса будут в объекте java. Этот объект будет значением для записи карты.

or

создайте карту для каждого IP-адреса и используйте имя счетчика в качестве ключа и значение счетчика в качестве значения для записи (int)

мой ключевой приоритет - скорость. извлечение объекта счетчика и его увеличение должны выполняться очень быстро.

так что лучше? много маленьких карт или одна большая карта?

Я надеюсь, что кто-то может помочь мне с этим.

С уважением,

Мартен


person Maarten    schedule 21.12.2010    source источник


Ответы (1)


Счетчики ограничения скорости, вероятно, будут одним из самых спорных объектов в системе. Я не знаю, будут ли карты Hazelcast работать достаточно хорошо.

Вы можете взглянуть на интерфейс AtomicNumber в Hazelcast 1.9, но я не знаю, можете ли вы создать произвольное количество этих объектов (или даже можете ли вы избавиться от них после их создания).

Лучше всего использовать HAProxy или аналогичный балансировщик нагрузки для реализации ваших правил регулирования перед вашими серверами приложений.

person sehugg    schedule 24.12.2010