Voici quelques questions très basiques concernant l'akka. Je suis totalement vert sur akka, donc tout conseil est apprécié.Basic akka - localiser les acteurs et leur état
Dites que j'ai une application avec des milliers d'utilisateurs - pas des millions. Le modèle de domaine est une hiérarchie dans laquelle chaque utilisateur est situé dans une région dans un pays, c'est-à-dire qu'un pays a des régions de multiplication, une région a plusieurs utilisateurs. Je pense à créer la même hiérarchie exacte dans Akka. CountryActor -> * RegionActor -> * UserActor. Le CountryActor/RegionActor sera plus d'être les parents, ont aussi des devoirs fonctionnels tels que la collecte newsfeeds, le calcul des statistiques, la surveillance de ses enfants, etc.
Q1: Est-il judicieux d'imiter le modèle de domaine de cette façon? Q2: Dois-je stocker les attributs de chaque entité dans l'acteur? De cette façon, les données n'auraient besoin d'être stockées qu'une seule fois et le système Akkka serait également une base de données de mémoire.
(pseudo-code)
CountryActor {
Name,
CountryCode,
(children = list of RegionActors handled by akka)
}
RegionActor {
Name,
RegionCode,
(children = list of UserActors handled by akka)
}
UserActor {
UserId,
Firstname,
Lastname,
Alias,
ReceiveRegionalNews,
ReceiveCountryNews,
...
}
Q3: Comment puis-je recherche efficacement un utilisateur par userId? Je m'attends à ce que le nom de l'utilisateur UserActor soit l'userId, mais étant donné que j'ai seulement un userId, j'ai encore besoin de trouver le pays et la région pour faire un getContent(). FindChild (userId)? Dois-je conserver une carte complète de tous les userIds et des références à leur acteur?
Q4: Comment localiser les acteurs par leur état? Imaginez que chaque utilisateur ait la possibilité d'activer un attribut RegionalNews, ce qui signifie qu'il souhaite recevoir des nouvelles de RegionalActor. Chaque fois que le RegionalActor veut distribuer des nouvelles à tous les auditeurs, comment les trouve-t-il? Est-ce qu'il garde une carte interne des utilisateurs avec l'attribut ou fait-il une diffusion à tous ses enfants et ensuite envoie à tous les répondeurs?
Merci à l'avance