【问题标题】:Service Fabric actor model handling multiple actor types处理多种参与者类型的 Service Fabric 参与者模型
【发布时间】:2019-01-26 14:54:06
【问题描述】:

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

CSR 的功能很少。但客户是整个难题的重要组成部分。 假设 CustomerActor 需要更新它自己的地址。 CSRActor 也可以进行同样的操作。

是否建议创建 2 个不同的 Actor,CSRActor 和 CustomerActor,然后 CSRActor 对客户 Actor 进行任何操作。或者 Customer 可以是一个单独的服务,两种类型的参与者都调用 CustomerService。 还有其他想法吗?

【问题讨论】:

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


    【解决方案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
    { }
    

    这将为您节省打 2 个电话来回答一个问题的开销。

    【讨论】:

    • 我认为代码Csra : CustomerBase, ICustomer 应该是Csra : CustomerBase, ICsra,其中ICsra 可能会实现ICustomer,因为问题表明它们在某些时候会有不同的操作
    • 谢谢@LoekD 这有点离题,但在我的示例中,客户与其他服务(付款、发票等)进行交互,让客户作为参与者与可靠服务有什么优势?
    猜你喜欢
    • 2016-02-10
    • 2015-12-28
    • 2017-12-17
    • 2017-12-27
    • 2016-04-07
    • 2016-09-24
    • 2019-05-20
    • 2016-03-01
    • 2016-07-26
    相关资源
    最近更新 更多