Przed ponownym wynalezieniem koła szukam wskazówek do projektów open source, które spełniają te wymagania.Poszukuję trwałej, rozproszonej kolejki pracowników dla erlang
- zaimplementowana w Erlang chociaż iść lub C są możliwe, jeśli nie ma zbyt dużo bagażu (np. Skręcenia labirynt z zależnościami)
- lub klient końcowy w Erlang (np: Chcę kod erlang do uruchomienia, gdy wykonuję zadania.)
- rozsyłanie zadań do węzłów i wywołanie funkcji erlang w celu wykonania zadań.
- utrzymują miejsca pracy jakoś
- żadne węzły Mistrzu, nie pojedynczy punkt awarii
- jednorodna architektura
- zarządzać kolejkę zadań, które mogą się w kopii zapasowej, bez pomijania pracy na podłodze
- zadania będącego zrobić więcej niż jeden raz jest ok
- profil operacyjny jak Riak lub Couchbase (np. uruchomić jeden węzeł, a następnie rozpocznij innych i skieruj je do niego)
Stro preferuj coś lekkiego. W Erlangu jest dużo przepracowanych rozwiązań klasy korporacyjnej, które wydają się zajmować tak długo, jak długo będę się uczyć, ponieważ byłoby to dla mnie odtworzenie od zera (w zasadzie zasadniczo zaprojektowałem rozwiązanie tego problemu w odpowiedzi na kogoś na pytanie na stackoverflow, mogę zbudować to, co opisałem, ale to wydaje się być jedną z tych potrzeb, która jest dokładnie w środku tego, do czego został zaprojektowany erlang.)
Co rozważałem: - ejabbered - więcej struktury wiadomości - rabitmq - teoretycznie robi to, ale za każdym razem, gdy odwiedzam ich stronę, tonę w morzu abstrakcji. Wygląda na to, że jest gotowy zrobić wszystko. Nie potrafię nawet stwierdzić, czy ma jakiś upór.
Edytuj, aby dodać: Oto platforma slajdów na rozproszonym blokowaniu za pomocą szafki. Wygląda na to, że rozwiązuje kluczową część problemu http://www.slideshare.net/knutnesheim/locker-distributed-consistent-locking
Dalsze Edit (jeśli chce się toczyć własnym zakresie.): ja naprawdę szukam czegoś więcej niż RabbitMQ lekkiej. Wiem, że może zrobić to, co chcę, ale wydaje się, że koszt uczenia się jest porównywalny z kosztem zrobienia tego sam, gdzie na końcu niestandardowe rozwiązanie byłoby bliższe temu, czego naprawdę potrzebuję.
Pół roku, aby w pełni zrozumieć RabbitMQ, jest o wiele dłuższy niż miesiąc, więc myślę, że zbudowanie własnego rozwiązania byłoby dla mnie zrozumiałe od samego początku. Myślę, że to moja troska o RabbitMQ. To robi wszystko i jest "klasy Enterprise", ale także ma stromą krzywą uczenia się. Dobrze wiedzieć, że może zrobić to, czego potrzebuję, zrobię trochę więcej śledztwa, aby sprawdzić, czy mogę wymyślić, jak utrzymać i skonfigurować go na moje potrzeby. – nirvana
Wypróbuj RabbitMQ. Dostaniesz o wiele więcej niż z własnego rozwiązania. – Tilman
Uczenie się gry RabbitMQ powinno być o wiele mniejsze niż samodzielne toczenie. Kluczowe części -> Wymiany Przywiąż do kolejek. Wiadomości są publikowane na giełdach, które spływają do oprawionych kolejek. Kolejki są miejscem, w którym otrzymujesz wiadomości z Konsumentami. Istnieje mnóstwo przykładów przy użyciu bibliotek RabbitMQ. – Travis