处理多种参与者类型的Service Fabric参与者模型

时间:2018-08-20 13:02:49

标签: azure-service-fabric service-fabric-actor actor-model

我正在使用Service Fabric作为微服务框架。我正在使用无状态服务,因为我们正在使用外部数据库。我有两种类型的用户:一种是CSR(客户代表),另一种是用户本身。如何安排我的Actor服务来解决此问题?

CSR的功能很少。但是客户是整个难题中的很大一部分。 假设CustomerActor需要更新其自己的地址。 CSRActor也可以完成相同的操作。

是否建议创建两个不同的Actor,即CSRActor和CustomerActor,然后CSRActor在客户actor上进行任何操作。或者,Customer可以是单独的服务,并且两种类型的参与者都称为CustomerService。 还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

支持

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
{ }

这样可以节省您打电话两次回答一个问题的开销。