Quelles sont les alternatives de langue et de produit à Akka?

en ce moment je regarde Play Framework et j'aime beaucoup. Une des parties lourdes annoncées parmi les caractéristiques offertes dans le jeu est Akka .

afin de mieux comprendre Akka et comment l'utiliser correctement, pouvez-vous me dire quelles sont les alternatives dans d'autres langues ou des produits?

Comment RabbitMQ comparer à elle? Il y a beaucoup de chevauchement? Est-il pratique les utiliser ensemble? DANS ce cas d'utilisation?

20
demandé sur Jacek Laskowski 2012-04-22 18:07:18
la source

6 ответов

Le meilleur endroit pour commencer est un grand Akka documents officiels . Je pense que le produit/cadre le plus proche D'Akka est langue. I guess (Je n'ai pas utilisé Play framework) Akka est utilisé pour mettre en œuvre Comet et d'autres processus asynchrones.

est un peu similaire dans les idées( infrastructure pour l'envoi de messages), notez que RabbitMQ est même écrits en , mais ils ont des cas d'utilisation légèrement différents. Je dirais que tandis que RabbitMQ se concentre sur le passage de messages, Akka est plus sur les acteurs (récepteurs de messages et expéditeurs).

13
répondu Tomasz Nurkiewicz 2012-04-22 18:22:51
la source

j'utilise RabbitMQ + Ressort AMQP + Goyave l'EventBus pour enregistrer automatiquement l'Acteur-comme des messagers à l'aide de Goyave de l'EventBus de pattern matching les messages reçus.

la similitude avec Spring AMQP et Akka est troublante. Le de Spring AMQP SimpleMessageListenerContainer + MessageListener est à peu près équivalent à un acteur.

toutefois à toutes fins pratiques et buts RabbitMQ est plus puissant que Akka en ce qu'il a beaucoup de client implémentations dans des langues différentes, fournit persistance (Files d'attente durables), routage topologique et algorithmes QoS branchables .

cela étant dit Akka est beaucoup plus pratique et en théorie Akka peut faire tout ce qui précède et certaines personnes ont écrit des extensions mais la plupart utilisent Akka et ensuite Akka livrer les messages sur RabbitMQ. Aussi printemps AMQP SimpleMessageListener conteneur est un peu lourd et son incertain ce qui se passerait si vous avez créé un couple de millions d'entre eux.

rétrospectivement, J'envisagerais D'utiliser Akka pour RabbitMQ au lieu D'AMQP de printemps pour des projets futurs.

18
répondu Adam Gent 2015-03-01 02:26:49
la source

le meilleur conseil que je puisse offrir, comme je suis également passé par le même processus de réflexion lorsque Play 2.0 rejoint Typesafe et a commencé à utiliser Akka plus, est de rechercher"modèle D'acteur".

Wikipedia est une grande ressource - http://en.wikipedia.org/wiki/Actor_model . Il a une liste de langages de programmation qui peuvent supporter le modèle d'acteur, et a également une liste de cadres (y compris Akka) qui sont basés sur le modèle D'acteur.

Bref, l'Acteur modèle est basé autour de la notion d'acteurs dans un tel modèle de calcul. Les acteurs ne signifient pas nécessairement la transmission de messages, mais la plupart des cas d'usage courant feront passer des messages par des acteurs (ce qui est l'endroit où les similitudes avec rabbitMQ seront présentes).

8
répondu Codemwnci 2012-04-22 19:58:41
la source

Akka est un toolkit et runtime pour la construction simultané & distribué systèmes. Pour ce faire, Akka utiliser le modèle de L'acteur. Si vous cherchez une alternative pour Akka, je pense que vous ne pouvez pas trouver une solution complète comme Akka, parce que Akka ont plusieurs fonctionnalités qui vous permettent de développer robuste concurrent & distribué système:

  • Akka actor
  • l'Acteur de Routage, de la Supervision et de la Surveillance
  • messagerie asynchrone et non bloquante
  • Akka Cluster (pour la gestion de cluster)
  • Akka (persistance de la mise en œuvre de l'Événement de l'approvisionnement, de la persistance de l'acteur et de l'Au-Moins-une Fois la Livraison de messagerie)
  • Akka I / O (for TCP & UDP communication)
  • Akka HTTP (pour la communication HTTP en tant que client ou serveur)
  • Akka Flux (pour le traitement de flux)
  • ...

mais je suggère de jeter un oeil à Erlang/OTP et Quasar .

1
répondu Saeed Zarinfam 2016-04-12 07:49:35
la source

http://scalecube.io est un faible temps de latence microservices lib . une solution complète qui vous permet de développer un système concurrent et distribué robuste.

Comme Akka: - il est basé sur les ragots et nager protocole. - son message basé sur protobuf (full duplex). - c'est pour le JVM. - faible latence et environ 6 fois plus vite. - utilise RxJava prouvé être plus rapide que akka streams.

Contrairement À Akka: - son moins opiniâtres - pas un cadre. - ne pas forcer modèle Acteur holistique modèle.

1
répondu ronen 2017-09-12 00:12:53
la source

vous pouvez également envisager D'utiliser Vertx, qui est également une plateforme réactive http://vertx.io/

où vous pouvez considérer le Verticle ( http://vertx.io/docs/vertx-core/java/#_verticles ) similaire au paradigme de L'acteur. Et L'EventBus similaire à Databus D'Akka ( http://vertx.io/docs/vertx-core/java/#event_bus )

0
répondu paul 2017-09-12 09:59:26
la source

Autres questions sur