Как повысить производительность клиента веб-службы Java SOAP в Linux - PullRequest
0 голосов
/ 06 июня 2019

Мы вызываем веб-сервис SOAP из Linux.Мы создали jar-файл клиентского приложения и вызывали его из сценария оболочки с помощью команды java.Через аргументы командной строки мы передаем входные данные.Проблема заключается в том, что для каждого вызова Java запускается новый процесс JVM, который снижает производительность.Есть ли лучший способ сделать это вместо того, чтобы каждый раз вызывать веб-сервис с командой 'java'?

1 Ответ

0 голосов
/ 07 июня 2019

Основная проблема заключается в медленном запуске Java JVM.

Существует два возможных способа решения этой проблемы:

  • Попробуйте ускорить запуск JVM.

  • Перепроектируйте свою систему, чтобы избежать нескольких запусков JVM.

Один из способов ускорить запуск с помощью AOT.В Java 9 была представлена ​​экспериментальная функция компиляции «AOTO» с целью уменьшения накладных расходов на запуск и прогрев.См. https://www.baeldung.com/ahead-of-time-compilation и https://openjdk.java.net/jeps/295 для получения дополнительной информации.

Обратите внимание, что Java AOT является экспериментальной функцией.Я не видел отчетов о том, насколько это эффективно в реальных приложениях.

Другой подход заключается в перепроектировании вашей системы, так что JVM не нужно запускать JVM так часто.Вот несколько способов сделать это:

  • Перепроектировать SOAP API, чтобы запросы SOAP выполняли больше работы;например, вместо того, чтобы каждый запрос выполнял одну задачу, создайте такую, которая выполняет пакет задач.

  • Перепроектируйте приложение Java, чтобы оно выполняло пакет запросов SOAP.Например, если ваш сценарий оболочки зацикливается на куче файлов и вызывает приложение Java для каждого из них, измените его так, чтобы приложение само выполняло циклы.

  • Повторная архитектура приложения Javaв долгосрочную службу, в которую вы можете отправлять запросы, используя HTTP / HTTPS (например, с curl), «перетаскивая файлы в каталог», и так далее.Здесь есть много возможных вариантов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...