Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么在高流量网站中使用会话来存储状态是个坏主意?

为什么在高流量网站中使用会话来存储状态是个坏主意?
EN

Stack Overflow用户
提问于 2009-04-20 09:43:18
回答 7查看 6.4K关注 0票数 21

我正在ASP.NET /ASP.NET上观看学习视频。在本教程中,他们将构建一个测验引擎。有一次,讲述者解释说,我们将使用Session对象来维护每页之间的状态(每页包含一个问题和四个答案)。他说,“由于这是一个低流量的网站”,可以使用Session,但他没有时间实现更复杂的方法。

我只是想知道他在暗示什么替代方法?为什么session对于一个高流量的网站来说是一个糟糕的选择?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-04-20 09:47:00

将数据存储在数据库中,或者存储在cookie或其他不会直接占用web服务器内存的方法中。

除了负载之外,会话还会引发使用服务器场的能力问题,因为您需要在整个服务器场中同步会话,或者使会话变得粘滞,这可能会影响可伸缩性。

票数 19
EN

Stack Overflow用户

发布于 2009-04-27 16:10:34

对于替代方案,您可以阅读文章Nine Options for Managing Persistent User State in Your ASP.NET Application

在文章中,作者解释了每种方法的优缺点。

从摘要中:

ASP.NET提供了许多不同的方法来在用户请求之间持久化数据。您可以使用Application对象、cookies、隐藏字段、Session或Cache对象以及许多其他方法。决定何时使用其中的每一个有时可能很困难。本文将介绍上述技术,并提供有关何时使用它们的一些指南。虽然这些技术中的许多都存在于传统的ASP中,但随着.NET框架的引入,何时使用它们的最佳实践已经发生了变化。若要将数据持久化到ASP.NET中,您必须调整以前学到的有关在ASP.

中处理状态的知识

票数 6
EN

Stack Overflow用户

发布于 2009-04-20 09:51:58

会话数据存储在服务器的RAM中,如果你有一个高流量的站点,很快就会变满,而你最不想要的就是将数据交换到磁盘上。

正如gaijin42所说,cookies或DB是替代方案。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/769338

复制
相关文章
为什么多线程是个坏主意
在 Unix编程艺术 中,提到了尽量避免多线程编程模型, 认为这样只会增加复杂度, 提倡使用多进程, 这样本质上就可以避免多线程『共享内存数据』产生的 “corruotped memory” 问题。
Java团长
2018/07/23
1K0
为什么多线程是个坏主意
高并发高流量网站架构
Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求。
Java架构师必看
2020/10/23
1.9K0
为什么网站排名高,而没有任何流量呢?
在做SEO的过程中,相信每一个SEO人员都会有这样的经历,那就是我们每天都在为思考网站排名相关问题,而绞尽脑汁。
蝙蝠侠IT
2021/06/08
4650
为什么网站排名高,而没有任何流量呢?
在Oracle中,如何定时清理INACTIVE状态的会话?
今天小麦苗给大家分享的是在Oracle中,如何定时清理INACTIVE状态的会话?
AiDBA宝典
2019/09/29
2.7K0
高并发大流量网站 10 个解决方法
普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻底解决性能问题。
用户5224393
2019/06/05
5590
无法向会话状态服务器发出会话状态请求
无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,确保服务器接受远程请求。如果服务器位于本地计算机上,并且上面提到的注册表值不存在或者设置为 0,则状态服务器连
纯粹是糖
2018/03/14
1.9K0
无法向会话状态服务器发出会话状态请求
无法向会话状态服务器发出会话状态请求
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection的值
逸鹏
2018/04/11
1.9K0
无法向会话状态服务器发出会话状态请求
当不使用会话状态时禁用它
并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。
Java架构师必看
2021/03/22
5070
什么是云原生?为什么是Portworx来解决云原生存储问题?
“云原生”是一个被人们经常使用但不是定义很清楚的一个术语。我们认为“云原生应用”应有以下特点:
Portworx
2019/10/25
3.1K0
【DB笔试面试702】在Oracle中,如何定时清理INACTIVE状态的会话?
一般情况下,少量的INACTVIE会话对数据库并没有什么影响,但是,如果由于程序设计等某些原因导致数据库出现大量的会话长时间处于INACTIVE状态,那么将会导致大量的系统资源被消耗,造成会话数超过系统SESSION的最大值,出现ORA-00018:maximum number of sessions exceeded错误。此时就需要清理那些长时间处于INACTIVE状态的会话。人为定期检查、杀掉这类会话肯定不太现实,要定期清理那些长时间处于INACTIVE的会话,可以使用如下几种办法:
AiDBA宝典
2019/12/17
9620
什么是线程组,为什么在 Java 中不推荐使用?
线程组是使用 Java 线程进行管理和组织的一种模型。Java 中的线程组是一个 ThreadGroup 类对象,它充当了一个父容器,可以将同一类线程分成一组,并提供追踪这些线程状态、统计信息及管理这些线程的方法。在线程组中,如果发生未捕获异常,可以通过 Thread.UncaughtExceptionHandler 进行处理。
用户1289394
2023/08/22
3350
什么是线程组,为什么在 Java 中不推荐使用?
ASP.NET中的会话状态模式详解
在ASP.NET中我们都会用到Session,但是Session存在哪里你们知道吗,今天我们就来了解一下。
小明爱学习
2019/01/07
1.9K0
Apriso 中启用 Redis 存储会话提升性能
Apriso 从 2022 版本开始在基础架构中增加了对 Redis 内存数据库的支持,用于存放会话状态、快速缓存存储。2022 之前版本是存储在 ASP.NET State Service 和 DELMIA Apriso State Service 中。将用户会话存储在系统服务外的 Redis 数据库中可以避免故障转移集群切换节点时丢失用户会话,避免用户重新登录。
李英杰同学
2023/09/02
3590
Apriso 中启用 Redis 存储会话提升性能
网站流量UV是什么意思?什么是流量UV/PV/IP
PV(访问量): 即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。 UV(独立访客): 即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
Java架构师必看
2021/03/22
5.2K0
为什么亿级流量的电商网站要使用消息队列?
其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?
小东啊
2019/11/14
9790
为什么亿级流量的电商网站要使用消息队列?
使用hive查询把访问网络流量会话化
《Hive编程指南》最后一章的Outbrain案例中,有一个把访问网络流量会话化的简单实现,但按照它的查询出来的结果是错的,于是自己重写了一个。 一、问题提出(摘自书中原文)         为了分析网络流量,我们常常希望能够基于各种各样的标准来测量热度。一种方法就是将用户行为分解到会话中,一次会话代表单一的一次“使用”所包含的一系列操作。一个用户在一天内或者一个月中的某几天可以多次访问某个网站,但每一次访问肯定是不一样的。         那么,什么是一个会话呢?一种定义是指相隔不超过30分钟的一连串的页面活动就是一个会话。也就是说,如果你去你的第1个页面,等待5分钟,然后去第2个页面,那么这是相同的会话。又等待25分钟后再到第3页,仍然是相同的会话。再等待1分钟跳转到第4页,这次会话将被打破了,这将不是第4个访问页面了,而是第2个会话中的第一个页面。         一旦我们获得这些中断信息,我们就可以查看会话的属性信息,来看看发生了什么事而导致中断的。常规的方式就是通过会话长度来对链入的页面进行比较。         乍一看,这似乎是一个完美的迭代过程。对于每个页面,保持倒计数,直到你找到第1个页面。但Hive是不支持迭代的。不过,还是可以解决这个问题。可以将这个过程分为4个阶段。 1. 识别哪些页面浏览是会话的初始者,或“起源”页面。 2. 对于每个页面,将其划分到正确的来源页面。 3. 将所有的页面浏览聚合到每个来源页面。 4. 对每个来源页面进行标记,然后计算每个会话的热度。 这种方式将产生一个表,其中每一行都表示一个完整的会话,然后用户就可以查询想知道的信息了。 二、实现过程 1. 设置 首先定义表session_test:
用户1148526
2022/05/07
8700
使用hive查询把访问网络流量会话化
做了网站SEO优化,为什么还是没有流量?
随着互联网的不断发展,越来越多的企业开始注重网站seo优化了,都想在互联网的竞争中脱颖而出。
蝙蝠侠IT
2020/12/30
5590
做了网站SEO优化,为什么还是没有流量?
什么是SSL?为什么要为WordPress网站使用SSL?
的排名。谷歌用来在搜索结果中对网站进行排名的指标之一就是可信度。Google的最大利益就是不要将其用户发送到不安全的网站,因此,可信度在他们的排名算法中占了很大比重。SSL增添了如此多的安全性,这是Google评估网站可信度的重要组成部分。
开心分享
2020/08/06
1.5K0
什么是SSL?为什么要为WordPress网站使用SSL?
【EJB学习笔记】——有状态的会话Bean和无状态的会话Bean
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/50970565
DannyHoo
2018/09/13
1.2K0
点击加载更多

相似问题

高流量网站

46

对于Heroku网站来说,什么是“高流量”?

14

使用元素Id来存储变量信息是个坏主意吗?

21

会话在高流量下被破坏

11

大型高流量网站使用ORM吗?

61
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文