Прежде чем повторно изобретать колесо, я ищу указатели на проекты с открытым исходным кодом, соответствующие этим требованиям.Ищете постоянную, распределенную рабочую очередь для erlang
- реализован в Эрл, хотя идти или C возможны, если не слишком много багажа (например, скручивание лабиринты зависимостей)
- конечной точки или клиент в Эрл (например: Я хочу Erlang код для запуска, когда я выполняю задания.)
- распределяет задания на узлы и вызывает функцию erlang для выполнения заданий.
- сохраняется рабочие места, как-то
- нет мастера-узлов, ни единой точки отказа
- гомогенного архитектура
- управления очередью заданий, которые могут получить резервные копирование, не опуская рабочие места на полу
- работы будучи сделал больше, чем один раз в порядке
- операционный профиль, как Riak или Couchbase (например, запустить один узел, а затем запустить других и указать их к нему)
Стро нг предпочтение чему-то легкому. В erlang есть много перегруженных решений в области корпоративного класса, которые кажутся такими, что им потребуется столько времени, чтобы учиться, поскольку это было бы для меня воссоздать это с нуля (фактически, я в основном архивировал решение этой самой проблемы в ответ кому-то else здесь, здесь, в stackoverflow.Я могу построить то, что я описал, но это похоже на одну из этих потребностей, которая находится прямо в середине того, для чего был разработан erlang.)
Что я рассмотрел: - ejabbered - больше рамки обмена сообщениями - rabitmq - теоретически это делает, но каждый раз, когда я иду на их сайт, я тону в море абстракций. Кажется, все готово. Я даже не могу сказать, имеет ли он какое-то упорство.
Редактировать добавить: Вот слайд-колода на распределенной блокировке с помощью шкафчика. Похоже, он решает ключевую часть проблемы http://www.slideshare.net/knutnesheim/locker-distributed-consistent-locking
Далее Edit (если кто-то хочет, чтобы свернуть свои собственные.): Я действительно искала что-то более легкое, чем RabbitMQ. Я знаю, что он может делать то, что я хочу, но, похоже, затраты на обучение сопоставимы с затратами на его выполнение, когда в конечном итоге пользовательское решение будет ближе к тому, что мне действительно нужно.
Полгода, чтобы полностью понять, что RabbitMQ намного длиннее месяца или около того, я думаю, мне понадобится построить собственное решение, которое я бы полностью понял с самого начала. Я думаю, что это моя проблема с RabbitMQ. Он делает все и является «Оценка предприятия», но также имеет крутую кривую обучения. Хорошо знать, что он может делать то, что мне нужно, я сделаю немного больше исследований, чтобы выяснить, могу ли я понять, как упорствовать и настроить его для моей потребности. – nirvana
Попробуйте RabbitMQ. Вы получите гораздо больше от этого, чем с помощью собственного решения. – Tilman
Изучение RabbitMQ должно быть намного меньше, чем кататься самостоятельно. Ключевые части -> Обмены привязки к очередям. Сообщения публикуются в разделе «Обмен», которые стекают в связанные очереди. В очередях вы получаете сообщения с Потребителями. Существует множество примеров с использованием библиотек RabbitMQ. – Travis