在 Service Fabric 中删除空闲的有状态服务

Deleting an idle Stateful Service in Service Fabric

我有一组特定于用户的有状态服务服​​务请求,这些请求是从应用程序中面向 public 的无状态服务(网络 API)转发的。

我正在尝试 delete 有状态服务,如果它在给定的时间间隔(比如一个小时)后没有为任何用户请求提供服务。目前,我通过在服务本身中保留一个 .NET 计时器并在服务空闲时使用 tick 事件自毁服务来管理它。

这样做正确吗?或者是否有其他更有效的方法 在 Azure 服务结构中执行此操作?

您拥有的机制会很好用,这也是我们通常推荐的机制。

另一种方法是拥有一个通用的 "service manager" 服务,该服务会定期检查服务是否繁忙(或被通知),并且可以启动 deleteserviceasync 调用。这样只有该服务需要集群管理员权限,而所有其他服务都可能被锁定为只读。