Différence dans le modèle de passage de message D'Akka et de Vert.x
suis un programmeur de Scala et comprendre Akka du point de vue du développeur. Je n'ai pas regardé le code de la bibliothèque Akka. J'ai lu au sujet des deux types d'acteurs dans le modèle Akka - basé sur le fil et basé sur l'événement-mais n'ayant pas dirigé Akka à grande échelle Je n'ai pas l'expérience de la configuration D'Akka pour la production. Et je suis complètement nouveau à Vert.x. Donc, du point de vue des choix de construire une pile d'application réactive je veux savoir -
- est le modèle de message-passing de Akka et Vert.x-elles très différentes? Comment?
- sont les structures de données derrière les acteurs D'Akka et Vert.les verticles de x pour amortir les messages très différents?
2 réponses
d'un point de vue superficiel ils sont vraiment similaires, bien que je considère personnellement plus similaire vert.x idées à un certain système MQ que pour akka... le vert.la topologie x est plus plate: un verticle partage un message avec un autre verticle ET reçoit une réponse... au lieu de cela akka est plus comme un arbre, où vous avez plusieurs acteurs, mais vous pouvez superviser les acteurs en utilisant d'autres acteurs,..pour les projets simples peut-être qu'ils ne sont pas si important, mais pour les grands projets vous pourriez apprécier un plus " hiérarchique système."..
vert.x d'autre part, offrent une meilleure interopérabilité entre les langues très populaires*. Pour moi, c'est un grand point, où vous auriez besoin de mélanger les acteurs avec un système de MQ et de faire face à plus de complexité, vert.x le rend simple et élégant. alors la réponse, qui est le mieux?...dépend, si votre système sera construit seulement sur scala, alors akka pourrait être le meilleur moyen...si vous avez besoin de communication avec javascript,ruby,python,java,etc...et n'ont pas besoin d'une hiérarchie complexe, alors vert.x est la voie à suivre..
*(en utilisant json, ce qui pourrait être un avantage ou un inconvénient par rapport à )
vous devez aussi tenir compte de ce vert.x est une solution complète, tcp, Serveur http, routing, même websocket!!! C'est assez étonnant, car ils offrent une pile complète et l'api est très propre...si vous choisissez akka, vous aurez besoin d'utiliser un cadre comme play, xitrum o spray..personnellement je n'aime pas l'un d'eux.
rappelez-vous aussi que vertx est un non opinionated plate-forme, vous pouvez utiliser akka ou kafka avec lui, par exemple, presque sans surcharge. La façon dont chaque partie du système est découplée à l'intérieur d'un verticle le rend si simple...
Vert.x est un grand projet avec une perspective étonnante, mais vraiment nouveau, si vous avez besoin d'une solution maintenant peut-être que ce ne serait pas la meilleure option, heureusement, vous pouvez apprendre les deux et utiliser les deux dans le même projet ...
après avoir fait un peu de recherche google je me suis rendu compte qu'à la comparaison détaillée de Akka vs Vert.x n'a pas encore été fait ( au moins je ne l'ai pas trouvé ).
modèle de Calcul:
- Vert.x est basé sur un modèle basé sur les événements.
- Akka est basé sur le modèle acteur de la concurrence,
Flux Réactifs:
- Vert.x a des flux réactifs intégrés--6-->
- Akka supporte les flux réactifs via Akka Streaming. Akka a opérateurs de flux (via Scala DSL) qui est très concis et propre.
support HTTP
- Vert.x a pris en charge la création de services réseau (HTTP, TCP, etc.)
- Akka a Akka HTTP pour cela
Scala de soutien
- Vert.x est écrit en Java
- Akka est écrit en Scala et son plaisir de travailler sur
services à distance
- Vert.x supporte les services, donc nous besoin de créer explicitement des services
- Akka dispose D'acteurs qui peuvent être déployés n'importe où sur le réseau, avec un support pour le regroupement, la réplication, l'équilibrage de charge, la supervision etc.
Références: