处理多种参与者类型的 Service Fabric 参与者模型
Posted
技术标签:
【中文标题】处理多种参与者类型的 Service Fabric 参与者模型【英文标题】:Service Fabric actor model handling multiple actor types 【发布时间】:2019-01-26 14:54:06 【问题描述】:我使用 Service Fabric 作为我的微服务框架。我正在使用无状态服务,因为我们使用的是外部数据库。我有两种类型的用户:一种是 CSR(客户代表),另一种是用户本身。如何安排我的 Actor 服务来解决这个问题?
CSR 的功能很少。但客户是整个难题的重要组成部分。 假设 CustomerActor 需要更新它自己的地址。 CSRActor 也可以进行同样的操作。
是否建议创建 2 个不同的 Actor,CSRActor 和 CustomerActor,然后 CSRActor 对客户 Actor 进行任何操作。或者 Customer 可以是一个单独的服务,两种类型的参与者都调用 CustomerService。 还有其他想法吗?
【问题讨论】:
【参考方案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 这有点离题,但在我的示例中,客户与其他服务(付款、发票等)进行交互,让客户作为参与者与可靠服务有什么优势?以上是关于处理多种参与者类型的 Service Fabric 参与者模型的主要内容,如果未能解决你的问题,请参考以下文章
Service Fabric 中的 actorevent 都有哪些限制?
Azure Service Fabric 可靠参与者与可靠服务