2

Мы планируем уйти в отставку с существующими устаревшими пакетными приложениями Java и воссоздать ее с помощью последней доступной пакетной структуры. Учитывая, что у нас есть большое количество пакетных заданий модернизации, мы ищем основу или архитектуры, которая позволила бы намКак динамическое развертывание автономной весенней партии с использованием Spring Cloud Task

  1. Разработки пакетного решения, которое позволило бы нам динамически развертывать новую партию, как и когда они созданы, не нарушая существующих развернутых приложений. - Задача Spring cloud задает любую из этих функций. Примечание. Мы планируем развернуть приложения на нашем локальном сервере и не имеем ничего общего с облаком.
  2. Если Spring Batch/Boot может предоставить нам функцию, которую мы обычно ожидаем от пакетного приложения, какое специальное значение добавляется для Spring Spring Task? - Я не смог полностью понять это из документации Spring, доступной в Интернете.
  3. Из документации Spring Spring Task я смог понять, что он позволяет приложению иметь много задач внутри него. Что делать, если каждая из задач имеет свои собственные зависимости в библиотеке, что может противоречить зависимостям других задач? Итак, в таком случае, если каждая из этих задач переместится в новое приложение или для этого есть работа?
+0

Чтобы уточнить, прежде чем ответить, все это предназначено для работы на «голом металле»? VM/физические серверы, а не облачная платформа любого типа? –

+0

Да, это правильно. –

ответ

7

Чтобы ответить на ваши вопросы:

  1. ли весна Облако задач ручка оркестровка - No. Spring Облако задач не обрабатывает оркестровки задач или заданий. Компонент этой экосистемы, который управляет развертыванием/оркестровкой задач или заданий, - это поток данных Spring Cloud (поэтому я спросил, используете ли вы какую-либо облачную платформу, включая YARN, Cloud Foundry, Kubernetes или Mesos ... среды поддерживаемый потоком данных Spring Cloud).
  2. Что добавленную стоимость делает Spring Cloud Задача обеспечить более Spring загрузки/Spring Batch - Spring Cloud Task предназначена для обеспечения несколько вещей:
    1. Подобные способности к весне Batch касаемо государственного управления без необходимости создать пакетное задание. При запуске приложения загрузки в облачной среде нет стандартного способа получения результатов из среды в среду (YARN обрабатывает результаты работы иначе, чем задачи в Cloud Foundry, отличные от заданий на Kubernetes и т. Д.). Spring Batch предоставляет это, но теперь для всех короткоживущих процессов требуются накладные расходы Batch API, поэтому Spring Cloud Task обеспечивает более легкое прикосновение к этим вариантам использования.
    2. Автоматически добавляет информационные слушатели. С Spring XD, когда вы запускали задание в контейнере XD, контейнер XD автоматически добавлял несколько информационных слушателей, которые транслировали события, которые вы могли прослушивать. Spring Cloud Task предоставляет те же функции без необходимости в контейнере XD.
    3. Интеграция с Spring Cloud Stream. Spring Cloud Task предоставляет возможность запускать задачи из сообщений, полученных от Spring Cloud Stream. Кроме того, ранее сообщаемые информационные сообщения (как пакетные, так и события Task) отправляются через каналы Spring Cloud Stream.
    4. DeployerPartitionHandler. При работе в облачной среде эта реализация PartitionHandler позволяет запускать рабочих для секционированного пакетного задания в качестве задач.Это позволяет динамическое масштабирование секционированных пакетных заданий вместо традиционной опции предварительного развертывания рабочих, которые слушают работу, которая тратит ресурсы в современной облачной среде.
  3. Как упаковка нескольких задач работает с зависимостями - Короче говоря, это не рекомендуется. Идея задачи Spring Cloud заключается в том, что выполнение приложения Spring Boot - это задача. Хотя вы можете упаковать несколько задач и использовать разные методы, попросите их выполнить на основе разных стимулов, что противоречит концепциям приложений с 12 факторами, которые необходимы для правильного использования Spring Spring Task.

Мои два цента
За лучший вариант для современной пакетной платформы, вам действительно нужно заглянуть в некоторые из платформы первой и которая начинается в/ПРЯЖА слое Cloud Foundry/Kubernetes/Mesos. Без этого вы в конечном итоге сами создаете большую часть инфраструктуры. Именно поэтому Spring XD превратилась в поток данных Spring Cloud. Добавленная сложность, которая жила в контейнерах Spring XD, удалена, требуя, чтобы на платформе работала современная платформа (поскольку все они сами справляются с этими гарантиями). Без этой части вы потратите много времени на управление развертыванием и оркестровкой приложений, которые обрабатывают большинство современных платформ.

Оттуда выбор становится довольно легким IMHO с Spring Cloud Task для простых задач, Spring Batch для пакетных заданий и Spring Data Data Flow для оркестровки.

+0

Большое спасибо Майклу. Это было действительно полезно и информативно. –