Уменьшение размера баночки для развёртывания в Mule 4

Наша организация является новой для Mule 4. У нас возникают некоторые проблемы при развертывании новых API. Для развертывания некоторых из наших API требуется около 10 минут. Мы полагаем, что эта задержка отчасти связана с гораздо большими jar-файлами для Mule 4 api по сравнению с развертыванием Mule 3, поскольку все зависимые jar-файлы упакованы в jar-код развертывания. Время от времени новое развертывание вызывает сбой, и все API-интерфейсы на сервере должны быть перезапущены.

В Mule 3 я считаю, что вы можете иметь несколько общих зависимостей API. Это позволило нам использовать банки меньшего размера для развертывания нового API. Есть ли способ, кроме доменных проектов, сделать это в Mule 4?

Мы пытались упаковать облегченные файлы jar с помощью команды "mvn package -DlightweightPackage", но не смогли их развернуть. Даже если мы поместим необходимую структуру репозитория в /lib/mule/repository, облегченный упакованный JAR больше не будет содержать classloader-model.json для настройки приложения, где искать его репозиторий (зависимости), чтобы они не могли правильно развернуться.

Однако, используя пакет по умолчанию, мы удалили ресурсы (дерево зависимостей) из развернутого JAR после выключения сервера, переместили дерево зависимостей в /lib/mule/resources (shared) и затем изменили "uri" в classloader-model. JSON в разобранном приложении (JAR). Затем мы запустили сервер, и приложение работает нормально. Казалось бы, это работает, но заставляет нас запускать и останавливать сервер каждый раз, когда мы что-то разворачиваем. Мы надеялись на исправление, которое все еще позволило бы нам выполнять горячие развертывания.

Кто-нибудь еще сталкивался с этой проблемой или есть какие-либо мысли о том, как решить эту проблему, кроме увеличения ресурсов на нашем сервере?

Спасибо!

0 ответов

Вы можете поделиться зависимостями с помощью домена. Оба разъемы и библиотеки могут быть общими.

Обратите внимание, что описанный вами метод недокументирован и не поддерживается. Это может исчезнуть или измениться в будущем выпуске. Я настоятельно рекомендую избегать его использования.

Я написал плагин maven, который заменяет все файлы репозитория /**/*. Jar, которые доступны в локальном репо, заполнителем, а затем копирует файлы обратно в mule-application.jar.

mvn io.github.c-a-services:mule4-jar-size-reducer-maven-plugin:LATEST:jar-compress

и позже

mvn io.github.c-a-services:mule4-jar-size-reducer-maven-plugin:LATEST:jar-refill

Дополнительные параметры и автоматизацию см.

https://github.com/c-a-services/mule4-jar-size-reducer-maven-plugin

Самому файлу больше не нужно столько места:;-)

17:17:02 [INFO] refdata-2019.9.1-12-SNAPSHOT-mule-application.jar Size=81743321
17:17:02 [INFO] refdata-2019.9.1-12-SNAPSHOT-mule-application.zip Size=960544
Другие вопросы по тегам