这是我使用服务结构集群的场景:
- 每个客户一个参与者实例。
- Actor 实例 ID 是客户 ID。所以这个 Actor 是我的客户 Actor 。
- 客户参与者实现包含 n 个步骤的工作流。
- 比方说,在第 m 个步骤(共 n 个步骤)中,该参与者需要与外部系统 (E) 对话。
- 系统 E 在任何给定时间都不允许超过 x 个客户端。
- 我在任何给定时间都有 100,000 个客户参与者实例。
- 由于外部系统 (E),我需要在步骤 m 将我的客户参与者限制为 x。
- 在步骤 m 之后(节流设置为 x),我想再次回到 actor 模型的全部潜力。
这是我的问题:
- Service Fabric 集群参与者模型是否提供任何节流机制?有了这种节流机制,我的场景会发生什么变化?
- 如果在 actor 模型中没有现成的节流解决方案,我将如何创建一个?
最佳答案
通常您会使用某种队列来处理负载突发。您可以(例如)在 Actor 和系统 E 之间添加一个服务,该服务将来自 Actor 的消息排队,然后在后台使用节流处理它们。
Actor 和他们的调用者不需要知道任何节流。并且它将 Actors 与系统 E 分离。
关于actor - 服务结构参与者模型是否允许节流?如果没有,如何制作一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39604238/