Prima di reinventare la ruota, sto cercando dei riferimenti a progetti open source che soddisfino questi requisiti.Ricerca di coda persistente, distribuita, di lavoro per erlang
- implementato in Erlang se andare o C sono possibili, se non c'è troppo bagaglio (ad esempio:. Torcendo labirinto delle dipendenze)
- endpoint o cliente in Erlang (Ad esempio: voglio codice erlang da eseguire quando eseguo i lavori.)
- distribuire i lavori ai nodi e chiamare alcune funzioni di erlang per eseguire i lavori.
- persistono i posti di lavoro in qualche modo
- senza nodi master, nessun single point of failure
- architettura omogenea
- gestire una coda di posti di lavoro che possono ottenere il backup, senza far cadere i lavori sul pavimento
- un lavoro di essere fatto più volte è ok
- profilo operativo come Riak o Couchbase (Es:. iniziare un nodo, quindi avviare altri e li punto ad esso)
Stro ng preferenza per qualcosa di leggero. Ci sono un sacco di soluzioni per il business grade esagerate là fuori in erlang che sembrano impiegherebbero tanto tempo per imparare come sarebbe per me ricreare questo da zero (in effetti, ho praticamente architettato una soluzione a questo problema in risposta a qualcuno la domanda di else qui sullo stackoverflow.Posso costruire quello che ho descritto, ma questo sembra uno di quei bisogni che è proprio nel mezzo di ciò per cui è stato progettato erlang.)
Quello che ho preso in considerazione: - ejabberato - altro di un quadro di messaggistica - rabitmq - teoricamente lo fa, ma ogni volta che vado sul loro sito web affogo in un mare di astrazioni. Sembra pronto a fare tutto. Non posso nemmeno dire se ha qualche tipo di persistenza.
Modifica per aggiungere: Ecco un gruppo di diapositive su blocco distribuito utilizzando l'armadietto. Sembra che risolve una parte fondamentale del problema http://www.slideshare.net/knutnesheim/locker-distributed-consistent-locking
Ulteriori Edit (se uno vuole rotolare il proprio.): sono davvero alla ricerca di qualcosa di più leggero di RabbitMQ. So che può fare quello che voglio, ma sembra che il costo nell'apprendimento sia paragonabile al costo di farlo da solo, dove alla fine la soluzione personalizzata sarebbe più vicina a ciò di cui ho veramente bisogno.
Un anno e mezzo per comprendere pienamente RabbitMQ è molto più lungo del mese o così penso che mi servirebbe per costruire la mia soluzione, che capirò fin dall'inizio. Penso che sia la mia preoccupazione per RabbitMQ. Lo fa tutto ed è "Enterprise grade", ma ha anche una curva di apprendimento ripida. Buono a sapere che può fare ciò di cui ho bisogno, farò un po 'più di indagini per vedere se riesco a capire come persistere e configurarlo per il mio bisogno. – nirvana
Prova RabbitMQ. Ne ricaverete molto di più che con la vostra soluzione. – Tilman
Learning RabbitMQ dovrebbe essere molto meno che rotolare il tuo. Parti chiave -> Scambi Bind to Queues. I messaggi sono pubblicati su Exchanges, che scendono verso le code legate. Le code sono dove ricevi i messaggi con i consumatori. Ci sono un sacco di esempi usando le librerie RabbitMQ. – Travis