好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

asp.net数据并发处理方案

一、 大数据量并发请求的几种情况

大量的用户同时对系统的不同页面进行查找、更新操作。

大量用户同时对系统的同一页面、同一表进行大数据量的查找操作。

大量用户同时对系统的同一页面、同一表进行更新操作。

二、针对各种情况的解决方案

(一). 第一种情况一般通过配置服务端可以解决


调整IIS7的应用池的队列长度,由默认的1000改为65535

IS Manager > ApplicationPools > Advanced Settings Queue Length : 65535


调整IIS7的请求数量限制,即appConcurrentRequestLimit设置

由原来的默认5000改为100000。 c:\windows\system32\inetsrv\appcmd.exe set config

/section:serverRuntime /appConcurrentRequestLimit:100000

在%systemroot%\System32\inetsrv\config\applicationHost.config中可以查看到该设置:


调整machine.config中的processModel>requestQueueLimit的设置

由原来的默认5000改为100000,

<system.web>

修改注册表,调整IIS 7支持的同时TCPIP连接数

由原来的默认5000改为100000,reg add

HKLM\System\CurrentControlSet\Services\HTTP\Parameteris /v

MaxConnections /t REG_DWORD /d 100000


以上操作基本可以满足10万左右的同时请求。

如果访问量高于10万以上,可以考虑负载均衡,或者使用数据库和业务系统按照功能进行分开部署,达到分担一定数据量的效果。

(二)数据库方面的处理

1、从获取记录直到更新行数据的这段时间,该行数据对用户不可用,锁定该行记录—保守控制,用户偶尔并发的情况。

2、只有当实际数据更新时,该行才对用户不可用。更新将在数据库中检查该行并确定是否进行任何更改,如果试图更新已更改的记录,导致并发冲突。

3、最后更新生效,只有当实际数据发生更新是,该行才对用户不可用,对数据进行最新改写。

(三)大数据库的检索查找,主要是对表按查询条件建立索引、对查询语句进行优化、查询数据使用缓存。

第三类情况的处理:

也能采用第一种情况的处理方法,

另外因为是对同一个表进行更新操作,可以考虑使用下面的处理方法:


先将数据保存到缓存中,当数据达到一定的数量后,再更新到数据库中

将表按索引划分(分表,分区),如:对于一个存储全国人民信息的表,这个数据量是很大的,如果按省划分为多个表,在将全国的人民信息按省存储到相应的表中,然后根据省份对相应的并进行查询和更新,这样大并发和大数据量的问题就会减小很多

————————————————

版权声明:本文为CSDN博主「m0_38004177」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_38004177/article/details/90260166

查看更多关于asp.net数据并发处理方案的详细内容...

  阅读:83次