Я разрабатываю масштабируемое приложение, поэтому решил использовать для него Hazelcast. У меня есть один интерфейсный сервер, который помещает сообщения для узлов. Каждый узел в кластере изменяет свою рабочую нагрузку в фоновом потоке в распределенной карте, поэтому внешний сервер выбирает очередь (каждый узел имеет свою собственную очередь сообщений) для помещения сообщения. Мой вопрос: подходит ли Hazelcast для такого дизайна (нам нужно распределение рабочей нагрузки и балансировка нагрузки) или могут быть какие-то альтернативы? Мне нравится Hazelcast за его простоту и приятный дизайн.
Высокомасштабируемое Java-приложение с Hazelcast
Ответы (2)
Hazelcast великолепен, он очень легкий и простой в использовании, однако он все еще находится в разработке, и при его использовании возникает несколько проблем.
Если вы посмотрите здесь: http://code.google.com/p/hazelcast/issues/list видно, что при использовании транзакций в структуре данных очереди возникают ошибки. В целом, он предоставляет то, что рекламирует, и в основном предоставляет распределенный кеш бесплатно.
У меня есть личный опыт работы с hazelcast. Версия, с которой мы пошли в производство, — это версия 1.9.4. Недавно мы обновились до версии 2.2, и теперь последняя версия — 2.3. Я очень доволен этим. То, что вы описываете, является довольно хорошим вариантом использования hazelcast. У меня был аналогичный вариант использования, когда каждый узел имеет свою собственную очередь, и сообщения помещаются в соответствующую очередь в зависимости от того, к какому узлу был подключен клиент. Это сработало отлично, и бизнесу это понравилось.