Service Fabric 应用程序中的静态变量范围
Static variable scope in Servie Fabric Application
我是 运行 我在本地的 Service Fabric Stateful 服务
有 3 个分区和 3 个副本。
应用程序有一个 public 静态变量,值在 'startup' class 中初始化。
我假设静态变量的范围是每个副本。
但似乎静态变量范围在节点中的所有实例之间共享。
即。我正在从分区 1 主副本访问静态变量,但它从分区 3 辅助副本访问静态变量,其中两个副本都位于 相同节点 。
静态变量的值似乎在同一节点内以某种顺序被覆盖。
有状态服务结构应用程序中静态变量的范围是什么?
相同服务类型的有状态服务的每个副本或无状态服务的实例是您的有状态服务的实例化-或StatelessService 派生服务 class(具有 RunAsync 的服务)在同一进程和同一 AppDomain 中。换句话说,放在同一个节点上的服务的所有副本只是同一个进程中的一堆.NET 对象。所以是的,将在它们之间看到一个静态变量。不推荐使用静态变量。如果您需要 "just one" 的东西,请使用单例模式和范围单例实例来服务 replicas/instances,您必须自己进行查找 table.
我是 运行 我在本地的 Service Fabric Stateful 服务 有 3 个分区和 3 个副本。
应用程序有一个 public 静态变量,值在 'startup' class 中初始化。
我假设静态变量的范围是每个副本。 但似乎静态变量范围在节点中的所有实例之间共享。
即。我正在从分区 1 主副本访问静态变量,但它从分区 3 辅助副本访问静态变量,其中两个副本都位于 相同节点 。 静态变量的值似乎在同一节点内以某种顺序被覆盖。
有状态服务结构应用程序中静态变量的范围是什么?
相同服务类型的有状态服务的每个副本或无状态服务的实例是您的有状态服务的实例化-或StatelessService 派生服务 class(具有 RunAsync 的服务)在同一进程和同一 AppDomain 中。换句话说,放在同一个节点上的服务的所有副本只是同一个进程中的一堆.NET 对象。所以是的,将在它们之间看到一个静态变量。不推荐使用静态变量。如果您需要 "just one" 的东西,请使用单例模式和范围单例实例来服务 replicas/instances,您必须自己进行查找 table.