В Java я могу динамически добавлять вещи в classpath и загружать классы («динамически», т.е. без перезапуска моего приложения). Существует ли известная инфраструктура / библиотека, которая занимается динамической загрузкой / выгрузкой модулей без перезапуска?
Обычной настройкой, особенно для веб-приложений, является балансировка нагрузки, несколько экземпляров приложения, а также постепенное развертывание и перезапуск новой версии. Я ищу что-то еще - приложение с несколькими службами / плагинами, возможно, настольное приложение с одним экземпляром, где отключение одного сервиса стоит дешево, но отключение или перезапуск полного приложения невозможен.
Я имею в виду типичную инфраструктуру плагинов, где плагины могут быть обновлены или установлены без перезапуска приложения. Нужно ли программировать это с нуля, или что-то уже доступно? Spring-совместимый и открытый исходный код является плюсом, но не обязательным требованием.