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

Событие OnCommandGet выполняется в контексте рабочего потока. Вам разрешен доступ к пользовательскому интерфейсу только из основного потока пользовательского интерфейса. Переместите доступ к элементам управления пользовательского интерфейса, встроенным в вызов, в TThread.Synchronize или TThread.Queue .

TThread.Synchronize(nil,
  procedure
  begin
    Tabcontrol1.ActiveTab:=tabitem2;
  end);
AResponseInfo.ResponseNo := 302;
AResponseInfo.Location := ARequestInfo.Params.Values['url'];

13
задан cliff.meyers 12 February 2009 в 04:13
поделиться

4 ответа

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

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

7
ответ дан 1 December 2019 в 22:58
поделиться

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

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

8
ответ дан 1 December 2019 в 22:58
поделиться

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

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

Я лично избегал бы "общедоступного" материала. Они могли бы дать Вам что-то для начала, но Вы в конечном счете столкнетесь с проблемами синхронизации или производительности и должны будете запустить написание кода, характерное для Вашего слоя сетки так или иначе. В основном Вы знаете свое приложение лучше, чем библиотека и сможете выяснить, которым объекты должны быть в кэше, сколько времени они должны жить, как Ваше приложение будет использоваться и т.д.

3
ответ дан 1 December 2019 в 22:58
поделиться

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

Это основано на алгоритме Google MapReduce.

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

2
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: