Вопрос

Я пишу распределенную исследовательскую приложение с Akka, используя простой мастер-топологию Master и нескольких работников, с целью развертывания внутреннего кластера узлов или в корпоративном облаке. (Когда Akka 2.1 становится доступной, я посмотрю в использование кластеризации)

Мой вопрос: Каков самый простой / лучший способ развертывать мой код (в виде папки, содержащей микромердже Akka) на каждый узел, запустите его, пусть это сделает это, то порвайте и повторите по мере необходимости?

    .
  • Справочник Microkernel и исполняемый файл идентичен каждому узеру работника и только несколько МБ. Config содержит IP-адрес мастера, к которому они будут подключаться.
  • Я намерен вручную начать мастер.
  • Устойчивость не является беспокойством, поскольку это не является бизнес-критическим приложением, а не частным Исследование проблемы.
  • Никаких важных данных хранится локально для работников.
  • После завершения приложения, я могу захотеть перераспределить другое приложение, не разрывая узлы (например, уточнив кодовую базу).

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

<Сильное> Обновление 2: Кто-то упомянутый Zookeeker может быть хорошо подходит для этого. Будет признателен за вклад от кого-либо с опытом.

Это было полезно?

Решение

Вот некоторые идеи. У меня нет опыта с Akka, но я знаю о сетке и развертывании.

  1. Используйте существующий инструмент сетки, например, как http://www.gridgain.com есть версия GPL). Также я слышал о людях, создающих сетку с http://www.hazelcast.com/

  2. Используйте облачную коробку, как воздушное положение, http://www.pistoncloud.com/press-relases/piston-cloud-launches-free-openstack-distribution/ . Я уверен, что должен быть другие.

  3. Airframe поставляется с фонариком облака, я полагаю, но вы можете посмотреть, используя его напрямую: https:// Micro.Cloudfoundry.com/ Но не уверен, как эта версия весывается вверх.

  4. Сверните собственную систему, установите на одно изображение VM, затем клонируйте его на других узлах.

  5. Когда речь идет о канне, вы можете сделать это как следует, что выглядит следующим образом, что очень похоже на что-то, что я уже разработал и хорошо работает.

      .
    • Создайте приложение, используя Maven, используя какие-либо библиотеки.

    • push-файловые двоичные файлы в сонатип Nexus.

    • Создайте пользовательский задержку, который учитывает координаты Maven модуля, может запустить его. Мой Laucher сначала проверяет местное репо Maven для банок, если они не существуют, то скачивает их из Nexus. Затем он создает классную трасс всех банок в дереве транзитивной зависимости. Затем он создает новый классный загрузчик с новыми классовыми паткой и запускает основной класс через классную загрузку.

    • Написать сервис, используя java-service-wrappe или аналогичный, что при запуске проверяется, какая версия кода для запуска, чтение некоторых координат Maven и имя основного класса с конфигурации. Config может быть файлом на сетевом диске, предварительно настроенный URL или даже Zookeeper. Затем он передает это на запуск, загружающую и запускает код.

    • Установите эту услугу на множество машин, либо вручную, либо через клонирование VM.

    • Прибыль!

    Я не упоминаю акку конкретно, так как большая часть вашей проблемы, кажется, как получить код, работающий на Mulitple Ults.

    Пользовательский маршрут хорошо работал для меня, но тогда у меня есть только несколько серверов, используя это, и все мои правильные вычисления сетки сделаны в синапсе данных. Но мне интересно, было ли я начать снова, если один из этих открытых источников PAA будет хорошим потомком.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top