.net数据并发处理方案

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

  1. 大量的用户同时对系统的不同页面进行查找、更新操作。
  2. 大量用户同时对系统的同一页面、同一表进行大数据量的查找操作。
  3. 大量用户同时对系统的同一页面、同一表进行更新操作。
    二、针对各种情况的解决方案

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

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

IS Manager > ApplicationPools > Advanced Settings Queue Length : 65535

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

由原来的默认5000改为100000。 c:\windows\system32\inetsrv\appcmd.exe set config
/section:serverRuntime /appConcurrentRequestLimit:100000
在%systemroot%\System32\inetsrv\config\applicationHost.config中可以查看到该设置:

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

由原来的默认5000改为100000,
<system.web>

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

由原来的默认5000改为100000,reg add
HKLM\System\CurrentControlSet\Services\HTTP\Parameteris /v
MaxConnections /t REG_DWORD /d 100000

  1. 以上操作基本可以满足10万左右的同时请求。
    如果访问量高于10万以上,可以考虑负载均衡,或者使用数据库和业务系统按照功能进行分开部署,达到分担一定数据量的效果。
    (二)数据库方面的处理
    1、从获取记录直到更新行数据的这段时间,该行数据对用户不可用,锁定该行记录—保守控制,用户偶尔并发的情况。
    2、只有当实际数据更新时,该行才对用户不可用。更新将在数据库中检查该行并确定是否进行任何更改,如果试图更新已更改的记录,导致并发冲突。
    3、最后更新生效,只有当实际数据发生更新是,该行才对用户不可用,对数据进行最新改写。
    (三)大数据库的检索查找,主要是对表按查询条件建立索引、对查询语句进行优化、查询数据使用缓存。

第三类情况的处理:
也能采用第一种情况的处理方法,
另外因为是对同一个表进行更新操作,可以考虑使用下面的处理方法:

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值