Я оцениваю различные библиотеки распространения объектов Java (Terracotta, JCS, JBoss, Hazelcast ...) для сервера приложений, и у меня возникают проблемы с пониманием их поведения на разных осях.Java распределенные объекты с локальностью?
Мои требования к распределенным объектам не так много - они сводятся к сообщениям «один к одному» и «один ко многим». Там больше, но для остальных мы просто используем JDBC, и я предполагаю, что я могу перекрыть кэш перед этим, используя любую из доступных библиотек.
Мне нужна система, которая распределяет объекты и демонстрирует свойства локальности - другими словами, сервер, который захватывает объект, имеет тенденцию удерживать его без избыточной связи с другими узлами. Hazelcast выглядит просто (и одноранговый - это хорошо), но, похоже, требуется, чтобы объекты распределялись равномерно по всем узлам.
Я бы хотел, чтобы объекты сохранялись, желательно прозрачно. Я планирую использовать EC2, поэтому у меня есть возможность временного, свободного, ограниченного локального хранилища (диска) и постоянного, несвободного неограниченного хранилища (S3). Было бы здорово не беспокоиться об OutOfMemoryErrors.
Мне нравится простота и «волшебство» Терракотты, но это пугает меня от меня beejeezus. Также для того, чтобы действительно масштабировать, вам нужно потратить $$$$, иначе вы общаетесь с одним концентратором.
Я дешевый, и я хочу что-то не только бесплатное, но и зрелое и с большой пользовательской базой.
Спасибо за любой ввод.
Мне нравится TC, за исключением того, что мои тесты с использованием DSO против моих собственных объектов не так хорошо. Есть немного snafus, которые вы не узнаете, если не выполняете тонну тестирования (или не находите их на производстве). Возможно, EHCache будет более идиотским. – sehugg