C# 和 ASP.NET Core 8.0 MVC:HttpContext.Session 可扩展性

问题描述 投票:0回答:1

我在 ASP.NET Core 8 MVC 网站中使用

HttpContext.Session

它的可扩展性如何?数据存储限制是否基于服务器的 RAM?

c# asp.net-core session httpcontext .net-8.0
1个回答
1
投票

HttpContext.Session
通常是有能力的,这也取决于您存储会话的方式。 假设您使用内存存储存储会话。默认情况下,会话状态存储在服务器的内存中。虽然速度很快,但它无法跨多个服务器进行扩展,因为会话数据位于单个服务器的本地。这意味着,如果您使用负载均衡器,用户的后续请求可能不会到达同一服务器,并且除非启用粘性会话,否则他们的会话数据可能会丢失。这种情况下的可扩展性受到服务器上可用 RAM 的限制。

如果您使用 Redis 或 SQL Server 等分布式缓存存储。此方法将会话数据存储在共享缓存中,Web 应用程序的所有实例都可以访问该缓存,无论哪个服务器处理请求。此设置更具可扩展性,并且可以处理更多用户,因为会话数据不依赖于单个服务器的内存。

© www.soinside.com 2019 - 2024. All rights reserved.