J'ai essayé de lire la documentation d'Akka pour connaître la différence exacte entre les acteurs typés et non typés. Quand utiliser quoi? Je ne suis pas sûr de ce qui me manque. Quelqu'un peut-il me signaler quelque chose de pertinent ou fournir une réponse à cette question ici même?Quelle est la différence entre les acteurs typés et non typés dans Akka? Quand utiliser quoi?
Répondre
UntypedActor est tout simplement le nom pour acteur, mais comme l'API Java.
Je suis très surpris que la documentation ne suffit pas:
Java:
- http://akka.io/docs/akka/1.2/java/typed-actors.html
- http://akka.io/docs/akka/1.2/java/untyped-actors.html
Scala:
La différence est que TypedActors ont une interface statique, et les invocations de méthodes sur cette interface est transformé en un message envoie. UntypedActors peut recevoir n'importe quel message.
Espérons que ça aide.
Cheers, √
Actors (Untyped)
Pour que les acteurs (Scala) reçoivent des messages, ils doivent se mélanger au trait de consommateur. Par exemple, la classe d'acteur suivante (Consumer1) implémente la méthode endpointUri, qui est déclarée dans le trait Consumer, afin de recevoir des messages du fichier: data/input/actor Camel endpoint. Les acteurs non typés (Java) doivent étendre la classe abstraite UntypedConsumerActor et implémenter les méthodes getEndpointUri() et onReceive (Object).
Actors (Typed)
Les acteurs typés peuvent également recevoir des messages des points de terminaison Camel. Contrairement aux acteurs (non typés), qui n'implémentent qu'une seule méthode receive ou onReceive, un acteur typé peut définir plusieurs méthodes (traitement de message), chacune pouvant recevoir des messages d'un point de terminaison Camel différent. Pour qu'une méthode d'acteur typé soit exposée en tant que point de terminaison Camel, elle doit être annotée avec l'annotation @consume. Par exemple, l'acteur consommateur typé suivant définit deux méthodes, foo et bar.
Mithun, la partie sur les acteurs qui ont besoin de mixin trait à la consommation afin de recevoir des messages est d'environ * messages Camel *, non? Tout Acteur Akka peut bien sûr recevoir des messages Akka ordinaires, avec ou sans Consommateur. – AmigoNico
@AmigoNico: Droit !! –
acteurs répondent aux messages typés envoyés, alors que les acteurs dactylographiés répondent aux appels de méthode (les valeurs des paramètres sont les messages). Le modèle d'acteur typé est utilisé pour définir des contrats stricts pour les acteurs qui ne peuvent répondre qu'à l'ensemble de messages prédéfini. Dans ce cas, chaque message n'a pas besoin d'être encapsulé comme un seul objet; Les acteurs typés nous permettent de définir des méthodes distinctes acceptant plusieurs entrées telles que définies par le contrat. Dans le langage java, les acteurs typés fournissent l'interface Java dans le monde orienté objet. [1]
[1] Akka Essentials
acteurs Akka typées "ne compose pas" et "ne sont pas utilement tapé".Cela va à l'encontre de la raison pour laquelle nous utilisons Scala: c'est la puissance de programmation fonctionnelle. Voir http://noelwelsh.com/programming/2013/03/04/why-i-dont-like-akka-actors/ pour approfondir dans cet état d'esprit.
Également, consultez les tentatives pour améliorer cela dans Scala pour correspondre à la façon Haskell.
http://letitcrash.com/post/40198993865/makkros-first-step-towards-typed-channels http://letitcrash.com/post/45188487245/the-second-step-akka-typed-channels
semble être encore au stade expérimental dans Akka ou même tombé - pas clair.
Cette idée de canaux typés est très logique car des problèmes similaires se produisent lorsque l'on essaie de construire des pipelines de données vérifiées (analytiques).
Akka dactylographié semble être une grande évolution vers un modèle de programmation plus sûr: https://opencredo.com/akka-typed/
- 1. Messages typés dans akka
- 2. LINQ et les performances avec des jeux de données typés et non typés?
- 3. Ensembles de données fortement typés et ensembles de données faiblement typés
- 4. Akka Disjoncteur partage entre les acteurs
- 5. Distribué Acteurs dans Akka
- 6. Langages de métaprogrammes typés
- 7. Comment enregistrer les exceptions non interceptées dans les acteurs Akka?
- 8. nodejs buffers vs tableaux typés
- 9. Quelle est la différence entre DLL géré et non géré
- 10. Android Alarm Quelle est la différence entre les quatre types d'alarmes fournis par AlarmManager et quand utiliser quoi?
- 11. Actionscript 3: Quelle est la différence entre l'interface et le résumé et quand les utiliser ..?
- 12. Collection d'objets typés
- 13. Quelle est la différence entre ceci et $ (this) dans jQuery?
- 14. Cluster Acteurs Akka/Scala
- 15. Recherche des acteurs Akka
- 16. Quelle est la différence entre les paquets android.opengl et javax.microedition.khronos.opengles?
- 17. XML désérialisation d'objets faiblement typés dans .NET
- 18. JavaScript: Travailleur Web et tableaux typés
- 19. Quelle est la différence entre «atomique» et non-atomique?
- 20. Quelle est la différence entre HttpHandler et un contrôle d'utilisateur Web et quand utiliser chacun d'eux?
- 21. quoi de la différence entre Asynctask et thread dans android?
- 22. Quelle est la différence entre lockless et non-bloquant?
- 23. vb.net - Fonctions et génériques typés arbitraires
- 24. Modèles de données typés dans Silverlight
- 25. Quelle est la différence entre LinkedList et ArrayList, et quand utiliser lequel?
- 26. Quelle est la différence entre les protocoles REST et HTTP?
- 27. Quelle est la différence entre dict() et {}?
- 28. Quelle est la différence entre Partiel et Slot dans Symfony?
- 29. Quelle est la différence entre les tuyaux et les douilles?
- 30. Quelle est la différence entre screenOrientation portrait et userPortrait
Pourquoi les gens préfèrent-ils généralement utiliser un acteur non typé plutôt que typé? Les caractères typés semblent rendre le code plus lisible - moins 'instanceof'/'cas' - impliqués. Plus orienté objet comme. Plus typé comme Java et les langages scala sont. – ses
Mon avis: en utilisant un acteur non typé, vous devez filtrer les messages par acteur. En utilisant l'acteur typé, vous devez lier pour le message exact seulement. – alerya
les acteurs typés induisent un couplage élevé et ils ne permettent pas de devenir/unbecome (ce qui est original et pure manière fonctionnelle de travailler avec l'état à l'intérieur des acteurs), plus d'infos - http://letitcrash.com/post/19074284309/when-to -use-typedactors – dk14