我使用Service Fabric作为我的微服务框架。我正在使用无状态服务,因为我们正在使用外部数据库。我有两种类型的用户:一种是CSR(客户代表),另一种是用户本身。如何安排我的Actor服务来解决这个问题?
CSR功能很少。但客户是整个难题的重要组成部分。假设CustomerActor需要更新它自己的地址。 CSRActor也可以完成相同的操作。
是否建议创建2个不同的Actors,CSRActor和CustomerActor,然后CSRActor对客户角色进行任何操作。或者Customer可以是单独的服务,两种类型的actor都调用CustomerService。还有其他想法吗?
Actor polymorphism得到支持。您可以拥有一个继承自另一个Actor类型的Actor类型。
像这样的东西:
public abstract class CustomerBase : Actor, ICustomer
{ }
[ActorService(Name = "Customer")]
public class Customer : CustomerBase, ICustomer
{ }
[ActorService(Name = "Csra")]
public class Csra : CustomerBase, ICsra
{ }
这将节省你做2个电话来回答一个问题的开销。