首页 > 解决方案 > 处理多种参与者类型的 Service Fabric 参与者模型

问题描述

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

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

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

标签: azure-service-fabricservice-fabric-actoractor-model

解决方案


支持Actor 多态性。您可以拥有从另一个 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 个电话来回答一个问题的开销。


推荐阅读