我在 ASP.NET Core 8 MVC 网站中使用
HttpContext.Session
。
它的可扩展性如何?数据存储限制是否基于服务器的 RAM?
HttpContext.Session
通常是有能力的,这也取决于您存储会话的方式。
假设您使用内存存储存储会话。默认情况下,会话状态存储在服务器的内存中。虽然速度很快,但它无法跨多个服务器进行扩展,因为会话数据位于单个服务器的本地。这意味着,如果您使用负载均衡器,用户的后续请求可能不会到达同一服务器,并且除非启用粘性会话,否则他们的会话数据可能会丢失。这种情况下的可扩展性受到服务器上可用 RAM 的限制。
如果您使用 Redis 或 SQL Server 等分布式缓存存储。此方法将会话数据存储在共享缓存中,Web 应用程序的所有实例都可以访问该缓存,无论哪个服务器处理请求。此设置更具可扩展性,并且可以处理更多用户,因为会话数据不依赖于单个服务器的内存。