0

我想创建一个使用 Azure Service Fabric 和 ASP.NET Core 作为前端托管的服务。

如果我正确阅读了文档,那么这里似乎只有两个真正的选项来处理我的会话数据......

1 - 创建一个无状态服务,该服务使用 Azure SQL 等外部数据库来存储会话信息。然后我可以通过简单地增加实例数量来扩展,并让更多的服务跨节点运行。只要 Azure SQL 数据库能够应对负载,那么一切都很好。这很有吸引力,因为它易于理解和实施。但它有外部数据库的额外成本。

2 - 创建一个使用可靠集合(字典)来存储会话信息的有状态服务。我不想将我的会话拆分到多个分区上,因为这会带来额外的复杂性。但是对于单个分区,我只能拥有一个主服务器实例。这降低了拥有外部数据库的成本。但不能扩展到两个或更多服务器实例。

我对文档的阅读意味着您只能将一个主服务器用于有状态的服务分区。我说对了吗?如果我可以有更多的初选,那么有 100 个初选会很好吗?

4

1 回答 1

1

不,你不能有 100 个初选。在有状态服务中,分区是您扩展的方式。您只能对主副本执行写入,主副本负责将该状态复制到辅助副本。

我不太确定您所说的多个分区的额外复杂性是什么意思。这与多个初选有何不同。您仍然必须知道将数据保存/检索到哪个主数据库,这与分区没有什么不同。

于 2017-06-21T15:57:48.887 回答