День добрый!
Подскажите пожалуйста где в документации по JMIX почитать про варианты горизонтального масштабирования (аналог Масштабирование приложения - Платформа CUBA. Руководство по разработке приложений)?
Что-то ни в русской, ни в английской версии сходу не нашел.
В плане деплоймента Jmix сильно проще CUBA - нет разделения web-middleware слоев, поэтому какие-либо архитектуры расписывать смысла нет.
В разделе Kubernetes Cluster :: Jmix Documentation приведены рекомендации по настройкам для горизонтального масштабирования в кластере.
Спасибо, это я все видел,
понятная тема на базе контейнеров и внешнего балансировщика.
Меня интересует другое:
- вот мы собрали приложение JMIX в монолитный JAR-файлик
- и хотим запустить без всяких кубернетисов на реальном железе
- какова будет конфигурация кластера?
Складывается впечатление, что такая возможность, прекрасно работающая на CUBA, в JMIX просто не реализована? И приложения JMIX не смогут синхронизироваться в пределах горизонтального кластера для обмена информацией о пользовательских сессиях и блокировках, сбросе кэшей и др., как это было в CUBA:
cuba.cluster.enabled = true
cuba.webHostName = ...
Или же в JMIX все проще, и как раз из-за того, что “склеили” Web и Core необходимость в таких синхронизациях отпала и механизм работы кластера изменился?
Но вот же написано:
When working in a distributed configuration, Jmix provides synchronization of the entity cache between cluster nodes.
Но это почему-то только для кубера, что несколько сбивает с толку.
Разъясните пожалуйста.
Все верно, между серверами приложения требуется коммуникация. Для этого достаточно подключить в зависимости приложения Hazelcast, настроить его (например с помощью конфигурации в hazelcast.yaml
) и указать свойство приложения:
spring.cache.jcache.provider = com.hazelcast.cache.HazelcastMemberCachingProvider
Кроме серверного взаимодействия требуется как обычно балансировщик с включенным sticky sessions. Одна из причин почему в документации описана настройка кластера именно в Kubernetes - доступность в Kubernetes такого балансировщика бесплатно.
Благодарю!
Теперь все встало на свои места и стало понятно, что функционал кластеризации “уехал” из ядра платформы во внешние специализированные модули.