Re: Værktøjer som virker med Perl
[email protected] ("michael!") Sun, 11 Dec 2011 13:13:58 +0100
| Newsgroups | perl.copenhagen |
|---|---|
| Message-ID | <CAGSE=gDRX64+NJWR+mz1kxT9UMNEZvbj98RAYuYpgkMmw7tvWA@mail.gmail.com> |
Hej - jeg kan anbefale RabbitMQ m. fx Net::RabbitMQ. Simpelt og effektivt i brug. vh Michael. 2011/12/11 Niels Jakob Darger <[email protected]>: > Hej, > > Jeg er på et projekt hos en større broadcaster. Projektet involverer > real-tidsanalyse af data, det er specielt kritisk under "broadcast events", > f.eks. VM 2010, OL 2012 eller ikke-programsatte (nyheds)begivenheder. Nok om > det. > > Spørgsmålet er hvilke værktøjer man kunne benytte til de generelle problemer > der skal tackles - distribueret processering, distribueret > låsning/synkronisering, distribueret lagring, messaging etc., etc.? > > Vi har et heterogent miljø med Perl og Java. Der er mange kølige teknologier > i Java: Hadoop (som jeg har vældig gode erfaringer med, både i Java og Perl > - via "Streaming mode"), Lucene (vældig køligt), ActiveMQ, Cassandra etc., > men det er nu tit hurtigere - og sjovere - at udvikle i Perl. > > Hvad er godt til de forskellige klasser af problemer: > > Messaging: ActiveMQ (eller WebSphere MQ) virker fint med Java, men hvad med > Perl? Har folk erfaringer med at snakke Thrift - eller med andre > messaging-teknologier? > > Kommunikation: ICE (http://www.zeroc.com/) - er mange ting - det virker fint > med C++ (og sikkert med Java, har ikke prøvet), men ikke med Perl. Gode > alternativer? XML-RPC og SOAP virker, meeen, det er snart 2012 og desuden er > serialisering og deserialisering af XML ikke det mest effektive. > > Distribueret processering: Hadoop fungerer naturligvis bedst med Java men > det virker med C++ (Pipes) og fungerer fortrinligt med Perl (Streaming). > Storm (https://github.com/nathanmarz/storm) kender jeg endnu ikke - der skal > kigges på det snarest. Storm *kunne* være en kandidat til at blive inddraget > i ovenstående projekt men deadlines og (potentielt manglende) modenhed i > Storm trækker i den anden retning. > > Distribueret lagring/caching: Memcached virker fint med Perl. > Protokolkompatible - Membase, MemcacheDB etc. - må antages også at virke. > HDFS virker vist med Perl via Thrift, jeg har dog ikke prøvet - vi bruger > (de Java-baserede) Hadoop/HDFS kommandoer med Perl hvilket naturligvis ikke > er super-effektivt da det medfører fork/exec, men det virker. > > Redis skulle virke. Har nogen erfaringer? > > CouchDB virker. Jeg har dog ikke produktionserfaringer med det da en anden > teknologi blev valgt efter at vi havde lavet en prototype i CouchDB (det var > nu ikke et decideret fravalg af CouchCB). MongoDB eller andet? > > Distributed låsning: Jeg skal have kigget på Zookeeper. Jeg skal i det hele > taget se få kigget på de andre teknologier i Hadoop-sfæren: HBase, Hive, > Pig, Mahout etc. Disse værktøjer er (måske med undtagelse af Zookeeper) ikke > specielt realtidsvenlige men er interessante i andre sammenhænge. > > Swig (http://www.swig.org/) er aldeles brugbart og rimeligt let > tilgængeligt. Muligvis lettere end XS som jag aldrig rigtigt har kigget på. > Swig er nyttig til implementering af koderegioner hvor der bare kræves rå > hastighed. > > Der er andre klasser af problemer - hvilke teknologier har folk (gode) > erfaringer med, helst med Perl, alternativt med C++ eller Java (man kan jo > som regel med hiv og skub få interfacet det med Perl)? > > Hilsen > Jakob