![]() |
1
1
这里有一些误解: 实例不同于进程 当您说您可以在VisualStudio上看到实例时,实际上看到的是进程。有些情况下,您可以在单个进程中拥有多个实例,VisualStudio只显示一个,但实际上有5个(在您的情况下)。这是由 SF Hosting Model 配置,在你定义它应该如何运行的地方,我已经回答了相关的问题 here #1 和 here #2 另一个是, 无状态服务有实例,有状态服务有分区和副本 . 基于此,您所看到的不是实例,它们是主副本(如果定义了复制和GT;1,则可能是次要的)。在文档中查看更多详细信息 here 给定前面的细节,当您对服务进行分区时,取决于您使用的主机模型,它可以在同一进程上创建多个副本,或者每个进程创建多个副本。 所有这些都只有一个捕获,来自同一分区的副本数量受限于每个节点1个,为了获得更多的信息,请看一下。 this issue on github 关于你的问题:
不! 如果您正在谈论对ASP.NET端点或远程调用的请求,这不影响实例计数,实例由SF配置定义,并且客户端请求不会影响它,它将根据可用的实例在您如何平衡这些请求之间进行拆分。这些请求影响实例计数的唯一方式是在服务中定义自动缩放。 当启动无状态\状态服务的新实例副本时(在同一进程内或外部),创建新对象。对这些服务的调用可能总是指向同一个对象,但并非总是如此,因为SF可能重新平衡服务并杀死这些实例,以在其他地方创建新的,或者在失败的情况下创建新实例。 对于有状态服务也有这样的情况,除非只对一个副本指定读操作,否则调用只能转到主副本。如果次要被提升为主级,则新的调用不会被重定向到前一个主副本。常见的情况或集群维护和应用程序更新。
如果使用共享宿主模型,所有静态对象将与同一进程内的任何实例共享。
根据先前的答案,是的,任何单级类都将被共享。 .
我不理解这里的问题,也许以前的答案可能会为你澄清,如果不是,留下评论如下,我会更新它。 |
![]() |
2
0
来自Microsoft的确认。服务结构确实为每个分区创建了一个“可靠服务”的1个[1 ]实例。这个“单点”实例将服务所有客户端远程处理/HTTP调用。如果复制副本发生故障转移,将创建一个新实例。 |
![]() |
KnowHoper · ProtoBuf-Azure服务结构 7 年前 |