Что бы вы порекомендовали для крупномасштабной технологии сетки данных Java:Терракота, GigaSpaces, Coherence и т. д.?[закрыто]

StackOverflow https://stackoverflow.com/questions/539985

Вопрос

Я читал о так называемых решениях «сетки данных» для платформы Java, включая Terracotta, GigaSpaces и Coherence.Мне было интересно, есть ли у кого-нибудь реальный опыт работы с каким-либо из этих инструментов и может ли он поделиться своим опытом.Мне также очень интересно узнать, с каким масштабом развертывания работали люди:мы говорим о кластерах из 2–4 узлов или вы работали с чем-то значительно большим?

Меня привлекает Terracotta из-за ее встроенной поддержки Hibernate и Spring, которые мы активно используем.Мне также нравится идея о том, как он украшает байт -код на основе конфигурации, и не требует, чтобы вы программировали против «API сетки». Я не знаю каких -либо преимуществ для инструментов, которые используют подход явного API, но хотели бы услышать о них, если они действительно существуют.:)

Я также потратил время на чтение о memcached, но мне больше интересно услышать отзывы об этих трех конкретных решениях.Мне было бы любопытно услышать, как они соотносятся с memcached, если кто-то использовал оба.

Это было полезно?

Решение

У нас было 50 серверов, на которых работало приложение веб-сервиса, и все эти серверы балансировали нагрузку с помощью bigIP.Требование заключалось в том, чтобы кэшировать каждое пользовательское состояние, чтобы последующие состояния не выполняли ту же самую обработку снова и не получали данные из предыдущего состояния.Таким образом, клиенту веб-сервиса не нужно поддерживать состояние.

Мы использовали Terracotta для кэширования состояний и никогда не сталкивались с проблемами производительности.В часы пик количество запросов, получаемых приложением, составляет 100 в секунду.

Другие советы

Вы можете проверить Хейзелкаст также.Hazelcast — это транзакционная, распределенная/разделенная реализация с открытым исходным кодом службы очередей, тем, карт, наборов, списков, блокировок и исполнителей.С ним очень легко работать;просто добавьте hazelcast.jar в свой путь к классам и начните кодировать.Практически не требуется настройка.

Хейзелкаст выпускается под лицензией Apache, также доступна поддержка корпоративного уровня.Код размещен по адресу Google-код.

Выбор библиотеки действительно зависит от вашего приложения и того, чего вы пытаетесь достичь.

Я работал в магазине, который использовал Coherence для обеспечения масштабируемости (и своего рода избыточности) своих веб-приложений.Мы обнаружили, что вам необходимо иметь около 4–5 узлов, чтобы начать получать какие-либо преимущества от Coherence (2 или 3 узла потенциально снижают производительность).Я считаю, что в документах Oracle говорится, что вам нужно много (30+) узлов, чтобы действительно получить выгоду от Coherence.Если вы используете Coherence, убедитесь, что ваше оборудование настроено правильно — оно очень чувствительно к задержке.

Лично я бы держался подальше от «забегающих» вещей.Они могут дать вам что-то для начала, но в конечном итоге вы столкнетесь с проблемами синхронизации или производительности, и вам все равно придется начинать писать код, специфичный для вашего слоя сетки.По сути, вы знаете свое приложение лучше, чем библиотеку, и сможете выяснить, какие элементы должны находиться в кеше, как долго они должны жить, как ваше приложение будет использоваться и т. д.

У меня недостаточно опыта работы с этими технологиями, но я думаю Апач Хадуп доказал свою масштабируемость и надежность.Yahoo запустил его Кластер Linux на 10 000 ядер.

Это основано на Google Уменьшение карты алгоритм.

Этот В статье описывается MapReduce и почему вам следует о нем позаботиться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top