В настоящее время мы готовим hazelcast к запуску в ближайшие недели. Осталась еще одна большая проблема, которая беспокоит наш отдел операционных систем и может быть возможной остановкой шоу, если мы не сможем ее исправить.
Поскольку мы поддерживаем платежное приложение с высокой доступностью, мы должны выжить на случай, если кластер будет недоступен. Причины могут быть:
- Кто-то перепутал конфигурацию hazelcast и карта в кластере увеличивается до тех пор, пока у нас не будет OOM (было такое на тестовой системе).
- Возникла проблема с сетевыми картами/аппаратными средствами, которая временно прерывает соединение с кластером.
- Ребята из ОП перенастроили брандмауэр и случайно заблокировали некоторые необходимые порты, что бы там ни было.
- Что угодно
Я потратил некоторое время на поиск хорошего существующего решения, но пока единственным решением было увеличение количества серверов резервного копирования, что, конечно, не решает проблему.
Во время моих текущих тестов приложение полностью перестало работать, потому что после определенных повторных попыток клиенты отключаются от кластера, и спящий кеш 2-го уровня больше не работает. Поскольку мы используем hazelcast во всей экосистеме, это почти мгновенно убьет 40 клиентов Java.
Таким образом, мне интересно, как мы могли бы добиться того, чтобы приложения все еще работали медленнее, когда кластер не работает. Наш текущий подход заключается в переключении на локальный кеш ehcache, но я думаю, что для этой проблемы также должно быть решение hazelcast?