Che cosa sono la lingua e prodotti alternativi per Akka?

Proprio ora sto guardando Play Framework e piace molto. Una delle parti pesanti pubblicizzato tra le funzionalità offerte in Gioco è Akka.

Al fine di comprendere meglio Akka e come usarlo correttamente, mi puoi dire quali sono le alternative in altre lingue o prodotti?

Come RabbitMQ riferisci? C’è un sacco di sovrapposizione? È pratico di usarli insieme? IN quali casi d’uso?

InformationsquelleAutor Mike Z | 2012-04-22

 

6 Replies
  1. 13

    Il posto migliore per iniziare è un grande Akka documentazione ufficiale. Penso che il prodotto più vicino/framework Akka è lingua. Ho indovinare (non ho usato la Play framework Akka è utilizzato per implementare una Cometa e altri l’elaborazione asincrona.

    è un po ‘ simile a idee (infrastruttura per l’invio di messaggi), nota che RabbitMQ è anche scritto nel , ma sono leggermente diversi casi d’uso. Vorrei dire che RabbitMQ si concentra sul messaggio che passa, Akka è più attori (messaggio di ricevitori e trasmettitori).

    • RabbitMQ è un AMQP broker, ovvero un mezzo di trasporto. Akka è una concorrenza/scalabilità/tolleranza toolkit. È possibile utilizzare AMQP come Akka Attore cassette postali o come Akka remoting di trasporto.
    • Grazie per la risposta,solo per clerify, se ho più applicazioni java, voglio loro di comunicare, ho bisogno di rabbitmq. Per esempio 2 separati giocare in 2 app separata macchine, akka non può essere l’unione del quadro, ho bisogno di jms o rabbitmq, è corretto?
    • È possibile “unire” Jvm remoti utilizzando attori, sono dotate di un trasporto di default che si basa su Netty.
    • utilizzando AMQP come un bene durevole cassetta postale non si sente a destra. AMQP brilla in un pubsub/scenario di messaggistica, mentre per un durevole cassetta postale preferisco considerare un negozio dedicato di qualche tipo (Redis, file system, ecc)
  2. 18

    Io uso RabbitMQ + Molla AMQP + Guava è EventBus per registrare automaticamente Attore-come messaggeri utilizzando Guava è EventBus per il pattern matching i messaggi ricevuti.

    La somiglianza di Primavera AMQP Akka è incredibile. Primavera AMQP del SimpleMessageListenerContainer + MessageListener è praticamente equivalente ad un Attore.

    Tuttavia, ai fini pratici, RabbitMQ è più potente di Akka ha molti client implementazioni in diverse lingue, fornisce la persistenza (durevole code), topologica di routing e pluggable QoS algoritmi.

    Detto Akka è il modo più conveniente e in teoria Akka può fare di tutto quanto sopra e alcune persone hanno scritto estensioni, ma più semplicemente di utilizzare Akka e poi Akka consegnare i messaggi RabbitMQ. Anche la Primavera AMQP SimpleMessageListener contenitore è un po pesante e il suo chiaro che cosa accadrebbe se si è creato un paio di milioni di loro.

    Col senno di poi vorrei considerare l’utilizzo di Akka per RabbbitMQ invece di Primavera AMQP per i progetti futuri.

    • Akka supporta durevole di cassette postali che sono simili alla persistente code che RabbitMQ fornisce.
    • Sì, ho scoperto di recente. La mia principale di manzo con Akka è che se l’utilizzo di Java, per interfaccia con it ti sembra di avere a che fare un sacco di casting. L’altra cosa è che ci sono amqp clienti in altri linguaggi come python.
    • Secondo letitcrash.com/post/29988753572/akka-amqp-proxies, Akka possibile utilizzare AMQP come un mezzo di trasporto. AMQP è un fili standard a livello di protocollo, in modo non preclude la Akka o qualsiasi linguaggio di programmazione o ambiente operativo utilizzo come mezzi per comunicare con i client scritti in altri linguaggi di programmazione.
    • Sì che è giusto come ho scritto Nella mia risposta ci sono estensioni di Akka. Comunque hai bisogno di alcuni top di Akka parlare di altre tecnologie. Ci sono un paio di altri problemi con Akka in che dovete essere molto attenti threadlocals.
  3. 8

    Il miglior consiglio che posso offrire, come anch’io ho attraversato lo stesso processo di pensiero quando Gioca 2.0 aderito Typesafe e ha iniziato a utilizzare Akka di più, è la ricerca di “modello Attore”.

    Wikipedia è una grande risorsa – http://en.wikipedia.org/wiki/Actor_model. Ha una lista di linguaggi di programmazione che supportano l’attore e modello, e ha anche un elenco di quadri (tra cui Akka), che sono basati sul modello Attore.

    Semplicemente, l’Attore modello si basa sul concetto di attori in un simultaneo modello di calcolo. Gli attori non significa necessariamente passare dei messaggi, ma la maggior parte dei casi di uso comune avrà attori passaggio di messaggi (che è dove le somiglianze con rabbitMQ verrò).

    • Piccola correzione con grande impatto: gli attori possono essere passati messaggi, che è l’essenza del concetto. Gli attori sono un modello di calcolo, mentre rabbitMQ è un mezzo per trasmettere messaggi, quindi vivono a diversi livelli di astrazione.
  4. 2

    Akka è un toolkit di runtime e per la costruzione di concorrenti & distribuito sistemi. Per raggiungere questo obiettivo, Akka utilizzare il modello Attore. Se siete alla ricerca di un’alternativa di Akka, penso che non sia possibile trovare una soluzione completa come Akka, perché Akka dispone di diverse funzionalità che consentono di sviluppare solide concorrenti & distribuito sistema:

    • Akka attore
    • Attore di Routing, della Supervisione e del Monitoraggio
    • Asincrona e non di blocco di messaggistica
    • Akka Cluster (per la gestione di cluster)
    • Akka persistenza (per l’attuazione Evento di sourcing, la persistenza di attore e di-Almeno-una Volta che la Consegna di messaggi di
    • Akka di I/O (per TCP & comunicazione UDP)
    • Akka HTTP (per la comunicazione HTTP server o client)
    • Akka Stream (stream processing)

    Ma ti consiglio di dare un’occhiata a Erlang/OTP e Quasar.

    • Come per un confronto con i Quasar, vi consiglio anche di dare un’occhiata a blog.paralleluniverse.co/2015/05/21/quasar-vs-akka. Notare che il Galaxy non è ancora pronto per la produzione (che sarà presto, però), ma d’altra parte Quasar Attori sono così simili a Erlang (e quindi così semplice) che l’integrazione con praticamente qualsiasi soluzione di messaggistica è estremamente facile e saremo presto a scrivere di più su questo. DISCLAIMER: io sono parte di un Quasar squadra.
  5. 1

    http://scalecube.io è una bassa latenza microservices lib .
    una soluzione completa che consentono di sviluppare simultaneo robusto & sistema distribuito.

    Come Akka:
    – basato su gossip e nuotare protocollo.
    – il suo messaggio driven basato su protobuf (full duplex).
    – per la JVM.
    – bassa latenza e su ~6 volte più veloce.
    – utilizza RxJava dimostrato di essere più veloce di akka dei flussi.

    A Differenza Di Akka:
    – meno supponente
    – non è un quadro.
    – non forzare l’Attore modello olistico modello.

    • Sembra che non ha niente per la persistenza. Forse, bestia diversa?

Lascia un commento