1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/pengminghua-openhandx-batch

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Распределённая пакетная архитектура — это решение для сложных задач обработки данных, анализа и научных вычислений. Задачи распределяются по определённым серверам, планируются, разделяются на подзадачи и выполняются параллельно, что значительно повышает эффективность и надёжность выполнения.

Кроме того, асинхронная пакетная архитектура может быть развёрнута в сети как часть облачных вычислений предприятия.

Основные принципы:

  • Пример асинхронной пакетной обработки показывает основные принципы, но реальное применение гораздо сложнее. Например, компании необходимо создать годовой отчёт, который должен быть разделён по различным отделам и филиалам компании. Данные для отчёта поступают из финансовой системы компании, ERP-системы и CRM-системы.

  • Технический анализ:

      1. Генерация отчёта начинается с извлечения данных из различных систем, их обработки и объединения в итоговый отчёт. Каждый шаг обработки должен быть классифицирован по отделам и филиалам.
      1. Отчёт каждого филиала должен быть объединён после завершения обработки данных. Затем создаётся общий отчёт для всей компании.
      1. Извлечение и обработка данных для каждого отдела и филиала могут выполняться параллельно. Также возможно параллельное выполнение обработки данных и объединение общих отчётов.
  • Этапы пакетного выполнения:

    1. Клиент или приложение инициируют событие, связанное с годовым отчётом.
    2. Главный сервер получает событие и находит предварительно настроенную диаграмму выполнения пакета (например, диаграмма может включать узлы для извлечения данных из финансовых систем, ERP и обработки данных).
    3. Главный сервер разбивает задачу на множество подзадач (например, извлечение данных из ERP для отдела A, B и C) и отправляет их на серверы задач для параллельного выполнения.
    4. Сервер задач выполняет задачи, такие как извлечение данных ERP для отделов A и B.
    5. После выполнения задачи сервер задач отправляет информацию о завершении обратно главному серверу.
    6. Главный сервер проверяет, завершены ли все задачи в пакете, и если да, создаёт следующий набор задач (например, обработка данных для отделов A, B и C), повторяя процесс до тех пор, пока все задачи не будут выполнены (и все отчёты не будут созданы).

Общая логическая структура:

  1. Событие инициируется приложением или центром событий и достигает развёрнутого главного сервера через сервер сообщений о событиях.
  2. Главный сервер разделяет событие на задачи согласно заранее определённой диаграмме узлов и направляет их на сервер сообщений о задачах, записывая журнал.
  3. Сервер задач получает соответствующие задачи от сервера сообщений о задачах в зависимости от своих ресурсов и выполняет их, обеспечивая балансировку нагрузки.
  4. После завершения выполнения сервер задач записывает журнал и отправляет информацию о выполнении обратно серверу сообщений о задачах.
  5. Главный сервер снова получает информацию о выполнении от сервера сообщений о задачах и определяет статус завершения узлов и событий. Если узлы не завершены, продолжается разделение и отправка задач. Если все задачи выполнены, событие считается завершённым.

Термины и определения:

  • Пакетная система OpenHandX-Batch — краткое название распределённой пакетной архитектуры.
  • Событие — запрос на пакетную обработку, отправленный приложением в пакетную систему.
  • Узел — этап сложного события, представляющий собой отдельную задачу.
  • Диаграмма узлов — схема, объединяющая несколько узлов в последовательность выполнения, называемую диаграммой потока узлов.
  • Задача — конкретная реализация узла, обычно один узел делится на одну задачу, хотя узел также может представлять собой определение группы похожих задач.

Ключевые особенности:

  • Поддержка нескольких приложений — возможность развертывания нескольких приложений на одном главном сервере или группе главных серверов, управляемых главным сервером.
  • Поддержка асинхронных событий — главный сервер может одновременно обрабатывать и контролировать несколько событий, используя приоритеты и веса событий для управления ресурсами сервера.
  • Распределённое выполнение задач — каждая задача выполняется отдельным сервером задач параллельно, поддерживая горячее развёртывание во время выполнения.
  • Автоматическая балансировка нагрузки — каждый сервер задач и главный сервер автоматически анализируют свои ресурсы и принимают задачи для выполнения.
  • Разнообразие диаграмм узлов и поддержка событий — главные серверы предоставляют древовидные и многоуровневые диаграммы узлов, а также поддержку отдельных типов задач. Диаграммы узлов позволяют определять последовательности выполнения для сложных событий. Поддерживается восстановление после сбоев.
  • Гибкость расширения — главные серверы, серверы задач и серверы событий предоставляют обширные интерфейсы, позволяющие настраивать диаграммы узлов, события и задачи.
  • Быстрое создание интерфейсов — серверы задач предоставляют основной интерфейс для разработки бизнес-кода для всех приложений, также поддерживая Spring Framework.
  • Надёжность и отказоустойчивость — каждый экземпляр главного сервера имеет свой собственный контейнер выполнения и поток, а серверы задач имеют свои независимые контейнеры задач и потоки выполнения, гарантируя, что сбой в одной задаче не повлияет на другие задачи. Кроме того, главный сервер отслеживает выполнение каждой задачи и даже после сбоя сервера может автоматически возобновить выполнение с предыдущего этапа. Диаграммы узлов поддерживают механизмы восстановления после ошибок, позволяя настраивать обработку ошибок в соответствии с важностью узла, условиями выполнения и требованиями к восстановлению.
  • Безопасность и уровни доступа — все инструменты пакетной обработки обеспечивают управление пользователями и паролями, а протоколы передачи событий и задач поддерживают шифрование и сжатие.
  • Различные модели применения — полная асинхронная пакетная система требует развёртывания главных серверов, серверов задач и серверов событий. При меньших требованиях можно гибко развернуть только серверы задач или комбинацию главных серверов и серверов задач.
  • Богатые возможности мониторинга и анализа — главные серверы, серверы задач и серверы событий имеют собственные инструменты мониторинга и управления, позволяющие запускать, приостанавливать и перезапускать серверы. Пакетные системы также предоставляют инструменты для анализа журналов в реальном времени, включая состояние выполнения событий, узлов и задач, а также прогресс выполнения.

Преимущества производительности:

  • Главные серверы:

      1. Приём событий, отправка задач и получение информации о задачах могут быть настроены различными способами: JMS-сервер, база данных, очередь памяти или WebService, где очередь памяти обеспечивает наибольшую эффективность, за которой следует WebService.
      1. Для сложных диаграмм узлов с длительным временем выполнения можно использовать асинхронные интерфейсы для повышения скорости главного сервера.
  • Серверы задач:

      1. Отправка и получение информации о задачах также могут быть настроены разными способами: JMS-серверы, базы данных, очереди памяти или WebServices, где очереди памяти обеспечивают наибольшую эффективность, а затем WebServices.
      1. Каждая задача выполняется в отдельном потоке выполнения.
      1. Управление задачами осуществляется менеджером экземпляров задач, который по умолчанию использует одноэкземплярную модель с многократным выполнением для снижения накладных расходов на создание новых задач во время выполнения.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Асинхронная пакетная архитектура предназначена для решения сложных задач обработки бизнес-процессов, анализа данных и научных вычислений, которые требуют много времени. Эти задачи выполняются на отдельном сервере. Они планируются, разделяются на подзадачи и выполняются параллельно, что значительно повышает эффективность и надёжность выполнения. ... Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/pengminghua-openhandx-batch.git
git@api.gitlife.ru:oschina-mirror/pengminghua-openhandx-batch.git
oschina-mirror
pengminghua-openhandx-batch
pengminghua-openhandx-batch
master