Hazelcast Embedded Mode - PullRequest
       11

Hazelcast Embedded Mode

0 голосов
/ 08 ноября 2019

Hazelcast Руководство по развертыванию и эксплуатации гласит:

Если вашему приложению требуется очень низкая задержка, рассмотрите возможность использования встроенного развертывания. Эта конфигурация обеспечит наилучшие характеристики задержки.

Существует ли какой-либо рекомендуемый размер кластера для встроенных операций для достижения низкой задержки?

Ответы [ 2 ]

1 голос
/ 11 ноября 2019

Встроенный режим обеспечивает 1 / N локализации данных, где N - количество серверов в кластере, а локальность данных уменьшается с увеличением размера кластера. Кроме того, в режиме Embedded нет реального выигрыша в производительности.

С клиент-сервером, хотя все данные являются удаленными, но серверы работают в своей выделенной среде, то есть не разделяют JVM и другие ресурсы с кодом приложения. Это также означает, что вы не будете вынуждены запускать экземпляр приложения для запуска сервера Hazelcast, что относится к встроенному режиму.

С другой стороны: если требуется низкая задержка, то NearCache может бытьиспользуется в любом из режимов развертывания.

Определение размера кластера зависит от различных факторов: размера общих кэшируемых данных, количества резервных копий, требуемого TPS и латентности, необходимости использования индекса для запросов и т. д. подробно.

1 голос
/ 08 ноября 2019

Это не простой вопрос. Кластер с одним узлом обеспечивает минимальную задержку, потому что все ваши данные будут храниться в вашем едином виртуальном сервере вместе с вашим приложением, потому что вы не несете никаких дополнительных затрат в сериализации и общении. Очевидно, что это противоречит цели Hazelcast, которая предоставляет вам функции, необходимые для теоремы CAP, такие как высокая доступность. Кроме того, вы можете просто не уместить все свои данные в одном узле. Отсюда, когда вы добавляете больше узлов, эта задержка может увеличиться, если ваше встроенное приложение получает доступ к данным с другого узла, особенно если оно имеет несколько циклов приема-передачи. Но вы, скорее всего, увеличите пропускную способность, и, следовательно, сможете обрабатывать более параллельно, потому что у вас будет больше процессоров и памяти, доступных на всех ваших узлах.

Размер вашего кластера будет зависеть от обычных переменных, таких как:доступный размер кучи, размер данных (объекта), количество, индексы, политика хранения и предполагаемый рост. Есть много других переменных, которые могут повлиять на размер вашего кластера.

...