2015-08-29 2 views
3

Vaughn Vernon décrit avec des acteurs comme DDD agrège ici: Vaughn Vernon on the Actor Model and Domain-Driven DesignDDD agrégats comme des acteurs

Tenir compte un total de la facture: est le cycle de vie de l'acteur service Azure Fabric à utiliser tel que 1 Acteur peut être utilisé pour tenir l'état de seulement 1 facture (disons avec l'identité "ABC") et le stockage fiable représente l'état de cette facture. Ou est-ce qu'un type d'implémentation Flyweight est nécessaire pour choisir une instance d'acteur disponible et charger l'état pour la facture "ABC" pour la durée de l'appel?

La première option semble correspondre à l'idée d'un acteur mais cela signifie que l'infrastructure Fabric doit avoir été conçue dans cet esprit avec 1 acteur pour chaque facture dans le système (un nombre illimité et sans aucun doute très grand)

Répondre

1

Service Fabric est définitivement conçu pour ce genre de scénario. Vous aurez besoin d'être astucieux pour partitionner votre état afin de pouvoir accueillir un grand nombre d'acteurs - vous devez penser à la taille potentielle des données, au nombre d'acteurs et à la taille de vos nœuds.

Ce que Service Fabric ne supporte pas (encore?) Est un moyen de repartitionner automatiquement vos services. Donc, si vous commencez avec 3 partitions et que vous réalisez que vous en avez besoin, vous devrez le faire vous-même. Vous aurez besoin de faire quelques expériences pour voir combien de partitions vous avez besoin, mais en général, il est recommandé de commencer avec un grand nombre.

Il vaut la peine de lire ceci https://azure.microsoft.com/en-gb/documentation/articles/service-fabric-concepts-partitioning/ et en regardant les commentaires.