Netflix Conductor как решение для рабочих процессов
Может кто-нибудь поделиться учебником о том, как использовать Netflix Conductor? Есть ли пример кода на GitHub или что-то? Я сделал пример на Amazon SWF и понимаю, как все это работает, но мне нужно несколько советов по началу работы с Conductor.
4 ответа
Начальный ресурс перехода - официальная документация проводника Netflix. Другими частями, которые могут помочь любому человеку набрать скорость, является фактическая работа проводника. Conductor server в основном управляет жизненным циклом задач.
Предположим, что проводящий сервер работает с использованием конфигурации по умолчанию. Чтобы выполнить рабочий процесс, вам нужно
- Создать определения задач,
- Создайте определение рабочего процесса, которое использует определения задач на шаге 1,
- Выполните рабочий процесс.
В рамках выполнения сервер-проводник планирует следующую задачу в рабочем процессе. Это первая задача в рабочем процессе, если вы только что выполнили. Conductor использует внутренние очереди, где задачи доступны для потребления клиентами (клиент может быть внутренней задачей или внешним рабочим приложением, которое взаимодействует с проводником через REST API).
Изначально у меня возникло главное сомнение в том, как и где работает работник? Работник может работать на Луне, при условии, что ваш работник может получить доступ к API REST, предоставленному проводником, и иметь возможность обновлять статус задачи обратно. то есть вы можете запускать микросервисы везде, где это необходимо.
Простым вариантом использования может быть проверка занятости на борту. Чтобы проверить работника перед посадкой на борт, вы можете проверить криминальное прошлое, проверку на наркотики, проверку образования и т. Д. Если вы используете проводящий сервер в своих помещениях и работники размещены в учреждениях, которые отвечают за вышеуказанные области, работники будут выполнять проверки и обновите рабочий процесс соответственно.
Проводник интегрирован с явными компонентами, такими как упругий поиск, dynomite и Redis для хранилищ данных. Вы можете подготовить их через кластер высокой доступности.
Используя модули contribs, вы можете интегрировать внешних брокеров MQ для задач и обновлять рабочий процесс соответствующими сведениями о приемнике, чтобы события публиковались в настроенном приемнике.
Вы также можете иметь другие рабочие процессы, которые вы можете выполнять в качестве вспомогательного рабочего процесса основного рабочего процесса через слабосвязанные обработчики событий. В вышеупомянутом сценарии использования этот субпроцесс может быть рабочим процессом для проверки образования, или вспомогательным процессом для проверки криминального прошлого и т. Д.
Из-за природы проводника без сохранения состояния вы можете запустить несколько экземпляров проводника через контейнеризацию.
В следующем репозитории есть несколько примеров приложений и пошаговых руководств по кодовой лаборатории для Netflix Conductor: https://github.com/conductor-sdk/conductor-examples .
Существует также бесплатная онлайн-площадка для создания/тестирования и запуска ваших рабочих процессов по адресу https://play.orkes.io.
Я сделал небольшой POC на проводнике Netflix, вы можете получить подробное описание по ссылке ниже. Также нажмите на код в приведенной ниже ссылке github, чтобы получить код и выполнить его. https://github.com/manishkushwaha1412/conductor-poc/wiki
На мой взгляд, самый простой способ - использовать докер.
Клонируйте этот репозиторий: https://github.com/Netflix/conductor
Заходим, проводник / докер и запускаем, докер-сочиняем
Теперь откройте свой браузер на http://localhost:5000.
В левом меню вы увидите элемент определения рабочего процесса, где вы можете увидеть пример рабочего процесса.
Чтобы развернуть собственный рабочий процесс, скопируйте json с этого сайта, измените имя и разверните его с помощью этого программного обеспечения Postman.com.
Сделайте сообщение для этой конечной точки для развертывания: http://localhost:8080/api/metadata/workflow
Отправьте сообщение на эту конечную точку, чтобы запустить рабочий процесс: http://localhost:8080/api/workflow/