На самом деле, я не знаю, почему документация Hibernate (см. 19.2. Кэш второго уровня ) не упоминает их как Кластерный сейф , но оба OSCache и EHCache можно использовать в кластерных средах. Возможно, потому что Hibernate официально не поддерживает их. Тем не менее, я знаю, что оба работают в распределенной среде, потому что я сделал это с EHCache, а Мэтт Райбл сделал это с OSCache (рекомендуется исправление гибернации ). Ознакомьтесь с постом Мэтта в блоге OSCache против EhCache для кэша второго уровня Hibernate , он очень информативен.
Вернемся к вашему вопросу сейчас ... Трудно дать вам точный ответ, так как вы не дали много подробностей о своих требованиях и ограничениях, но учли, что:
- JGroups - это инструментарий для надежной многоадресной связи (обратите внимание, что это не обязательно означает IP Multicast, JGroups также может использовать транспорты, такие как TCP).
- Мое понимание предыдущего пункта состоит в том, что использование JBoss Cache на самом деле не исключено (см. эту матрицу для связанной версии JGroups). Так что это вариант.
- SwarmCache кажется мертвым (нулевая активность с ноября 2003 года!) И не имеет много доступных ресурсов в Интернете, я бы не стал его использовать.
- OSCache (делает недействительным) поддерживает JGroups и JMS как широковещательный протокол. Это вариант.
- EHCache поддерживает Terracotta, RMI, JGroups, JMS, Cache Server в качестве механизмов распространения и поддерживает как аннулирование, так и репликацию . Это вариант.
Теперь, без более подробной информации (репликация против аннулирования? Какая поддержка стратегии параллелизма кэша вам нужна? Каковы ваши ограничения?), Я не могу сказать больше ничего.