Akka obsolesce i broker di messaggi JMS / AMQP? [chiuso]

17

Ho trascorso l'ultima settimana di approfondimento nei documenti di Akka e finalmente ho capito quali sono i sistemi di attori, e i problemi che risolvono.

La mia comprensione (e l'esperienza con) i tradizionali broker di messaggi JMS / AMQP è che esistono per fornire quanto segue:

  • Elaborazione asincrona tra produttore e consumatore; e
  • Garanzia di consegna dei messaggi, inclusi persistenza, tentativi e fallback

Ma Akka non fornisce questo, senza tutta l'infrastruttura necessaria e l'overhead operativo?

  • In Akka, tutte le comunicazioni degli attori sono asincrone e non bloccanti; e
  • In Akka, SupervisorStrategies esiste per eseguire tentativi, fallback ed escalation. Gli attori possono essere configurati in modo da persistere praticamente in qualsiasi tipo di negozio, se anche questo è un requisito.

Quindi questo mi chiede: se la mia app utilizza Akka, ho mai bisogno di portare i broker JMS / AMQP (ad esempio ActiveMQ, RabbitMQ, Kafka) nell'immagine? In altre parole, c'è mai un caso d'uso in cui una nuova app basata su Akka meriterebbe anche l'introduzione di un cluster di broker JMS / AMQP nuovo ? Perché o perché no?

L'unico argomento potrebbe essere che forse la mia app Akka deve integrarsi con un altro sistema. Ma in questo caso, il modulo Akka-Camel consente ad Akka di attingere esaustivamente al Camel, elenco quasi infinito di funzionalità di integrazione (TCP, FTP, ZeroMQ, l'elenco può continuare all'infinito ...).

Pensieri?

    
posta smeeb 24.07.2015 - 15:02
fonte

1 risposta

11

Modello attore

Il modello dell'attore è una strategia informatica per la creazione di applicazioni che gestiscono numerosi calcoli simultanei e elaborazioni stateful. Non è l'unica strategia, ma è un approccio molto ben collaudato, semplice e affidabile che sposta il calcolo in attori , che comunicano attraverso messaggi che elaborano uno alla volta e in ordine.

Akka è un framework che implementa il modello di attore e ti consente di creare sistemi di attori con tutte le infrastrutture e le funzionalità già create (come l'utilizzo di JQuery anziché di javascript).

Messaggi

I sistemi di messaggi sono applicazioni che possono inviare e recuperare messaggi. Ci sono molte varietà dalle code di base ai grandi software aziendali con argomenti, pub / sub, persistenza e altre funzionalità, ma l'obiettivo finale è lo stesso. Salvare alcuni byte da qualche parte e recuperarli più tardi, con una sorta di ordinamento. Il caso d'uso principale oggi è disaccoppiare i sistemi e consentire l'elaborazione asincrona a diversi programmi o velocità. RabbitMQ, NATS, Kafka, ecc. Sono tutti esempi di sistemi di messaggi.

di confronto

Il modello Actor e il framework Akka sono strumenti di basso livello che sono un ottimo modo per creare applicazioni , come le code di messaggi.

Puoi usare Akka invece di una coda di messaggi? Sicuro. Se stai costruendo software che utilizza già il modello di attore, probabilmente non hai bisogno di una coda di messaggi esterna, specialmente per l'invio di messaggi all'interno dello stesso thread o applicazione. È possibile utilizzare le funzionalità di Akka Remoting anche per inviare messaggi ad altri sistemi di attori in esecuzione su altri computer.

Tuttavia, questo rende obsoleti i sistemi di messaggistica? Assolutamente no. Solo perché puoi codificare tutte queste cose da te non significa che devi, specialmente quando un modello di attore non è adatto al tuo problema o hai bisogno di lingue, applicazioni, API esterne, sistemi operativi, database, ecc. Per comunicare l'uno con l'altro (indipendentemente dal fatto che siano sistemi di attori o meno).

Se hai solo bisogno di passare alcuni messaggi tra due sistemi, usa una coda di messaggi. Se è necessaria l'elaborazione di stato scalabile e la messaggistica a bassa latenza all'interno della stessa applicazione, utilizzare il modello dell'attore. Entrambi esistono a livelli completamente diversi e il modo in cui li si utilizza dipende dalla soluzione che si sta creando.

C'è una grande risposta su SO su questo stesso modello di attore vs messaggistica: link

    
risposta data 29.10.2015 - 04:49
fonte