Любая ошибка на основе синхронизации условий. Они часто прибывают при работе с коммуникацией межпотока, внешней системой, чтении из сети, чтении из файла или общении с любым внешним сервером или устройством.
Я предлагаю либо JBossCache , либо EhCache (с слушателем распределенного кэша ). Я использовал оба, мне нравятся оба, и они оба соответствуют вашим требованиям.
Вы смотрели на Coherence?
Мы нашли его очень полезным. Однако это не открытый исходный код и не дешевый.
http://www.oracle.com/technology/products/coherence/index.html
Terracotta недавно приобрела Ehcache и приобрела выпустила тесную интеграцию Ehcache API с кластеризованным хранилищем Terracotta в простом пакете и требует всего лишь нескольких дополнительных строк конфигурации Ehcache для перехода от одиночного узла к кластеризованному, хотя вам также необходимо запустить процесс сервера Terracotta.
Ehcache с версией Terracotta ES является открытым исходным кодом и может использоваться бесплатно. Коммерческие лицензии доступны, если вам нужна поддержка, большее масштабирование, компенсация, поддержка исправлений и т. Д.
Terracotta действительно использует массив центрального сервера , а не один центральный сервер, поэтому нет единой точки отказа ! Вы можете настроить столько серверов горячего резервирования, сколько захотите, и эти серверы резервного копирования можно настроить так, чтобы они действовали при выходе из строя активного сервера. С Terracotta FX (коммерческий продукт) вы также можете использовать несколько активных серверов.
Попробуйте Hazelcast . Это платформа кластеризации с открытым исходным кодом и хорошо масштабируемая платформа распределения данных для Java. Он отвечает всем вашим требованиям. Кроме того, им очень легко пользоваться.