场景:假设现在是一个电商网站,今天要举办活动,有10个商品低价销售,但是会来抢购的人会特别多,最后只有十个人可以成功的买到商品
 
明确2个问题
1.访问量:抢票时间断用户访问量
2.并发:1秒内请求量
 
技术点:
1、前台页面
     1.1、gzip压缩文件 (参考网址:http://www.cnblogs.com/KevinYang/archive/2010/06/02/1749675.html)
     1.2、请求抢票提交增加验证码
2、消息队列:RabbitMq(用户的请求到达了抢单接口,我们只向队列中丢一条数据后就立即返回)
3、缓存层 :
3.1、首先我们需要针对IO密集型异步化操作,抢单的页面不只是有抢单按钮,还有商品的介绍,图片,文字描述等。对于这些数据我们要进行缓存(建立对应的机制:增删改),一万个用户一万次请求都从数据库中取数据与只取一次剩下9999次从缓存中取效率自然是不一样的
3.2、会有同一个用户多次进行请求的情况,如果像之前的逻辑,前10条信息有二条是属于一个人的呢,(这里假设每个人只可以购买一次)我们就需要进行判断了,同一个账户发送的多次请求,我们只认为第一次请求是有效的,剩下的都请都直接返回。因为是并发,我们又怎么做到第一次请求有效呢?这时我们可以使用Redis incr存储用户的标识,Redis是单线程的,不存在并发的问题。incr返回为1那么是第一次请求,为N则是第N请求那么它就是无效的
 
4、代码层
  • 服务层(webapi\wcf等技术)
5、数据库层
  • 分布数据(未知)
  • 读写分离(数据库复制技术发布订阅方式:主数据库写操作从数据库查询)-未解决
  • 表数据拆分
       水平拆分(表分区-已解决)
       垂直拆分(单表按照业务功能拆分字段为多表按,比如A表有a、b、c、d、e、f字段 a、b、c是业务A常用的操作字段d、e、f是业务B常用的操作字段)-未解决
  • 数据库缓存(Redis)-未解决

参考文章:Net高并发解决思路(附源码)

asp.net高并发网站解决方案【未完成版本】的更多相关文章

  1. 浅谈千万级PV/IP规模高性能高并发网站架构(转自老男孩)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/736710 如果把来 ...

  2. PHP 高并发秒杀解决方案

    本文提供 PHP 高并发秒杀解决方案(附加三个案例说明(普通流程,使用文件锁,使用redis消息队列)) 1:(正常流程,不做任何高并发处理),代码如下: <?php $_mysqli = ne ...

  3. (转)浅谈千万级PV/IP规模高性能高并发网站架构

    浅谈千万级PV/IP规模高性能高并发网站架构 原文:http://blog.51cto.com/oldboy/736710 文章架构简图:   高并发访问的核心原则其实就一句话“把所有的用户访问请求都 ...

  4. 分析http协议和高并发网站架构

    案例任务名称 分析http协议和高并发网站架构 案例训练目标 深入理解http协议的工作原理 掌握http协议的分析方法 包含技能点 搭建web服务器 编辑简单的html页面并上传到服务器 使用wir ...

  5. 转载:【高并发简单解决方案 | 靠谱崔小拽 】redis队列缓存 + mysql 批量入库 + php离线整合

    需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中:存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮. 问题分析 思考:应用网站架构的衍化过程中,应用最新的框 ...

  6. 【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合

    需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中:存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮. 问题分析 思考:应用网站架构的衍化过程中,应用最新的框 ...

  7. 【高并发简单解决方案】redis缓存队列+mysql 批量入库+php离线整合

    原文出处: 崔小拽 需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中:存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮. 问题分析 思考:应用网站架构的衍化 ...

  8. Web性能优化 高并发网站解决 单例 已看1

    Web性能优化分为服务器端和浏览器端两个方面. 一.浏览器端,关于浏览器端优化,分很多个方面1.压缩源码和图片JavaScript文件源代码可以采用混淆压缩的方式,CSS文件源代码进行普通压缩,JPG ...

  9. 在CentOS上使用Nginx和Tomcat搭建高可用高并发网站

    目录 目录 前言 创建CentOS虚拟机 安装Nginx 安装Tomcat 安装lvs和keepalived 反向代理 部署网站 搭建数据库 编写网站项目 解决session一致性 注意 参考资料 前 ...

随机推荐

  1. MySQL如何查询当月数据

    自己写了一个比较简单效率又高的方法,分享给大家: WHERE addTime BETWEEN DATE_FORMAT(NOW(),'%Y-%m-01') AND NOW() 方法就是过滤 本月1日到当 ...

  2. springboot微信支付,支付二维码生成

    https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1 微信扫码支付开发者文档,里面会有支付流程的教程 接口链接 URL地址:htt ...

  3. JNA简单使用

    近期使用Java开发有关于摄像机接收到数据的上传,因为摄像机处理图像是用C语言实现的,所以开发需要用到JNA,实现JAVA对C语言的回调,因为具体的开发方式官方文档里面有示例,所以本文只是简单的把需要 ...

  4. elasticsearch映射及分析-----3

    首先我们看下不同的索引方式相同的字段指定字段类型与不指定字段类型es会怎么处理 1.不指定类型,直接创建索引及类型文档 我们看下他默认的索引映射 2.创建索引和类型时指定字段类型 这里创建了一个索引为 ...

  5. ngnix 反向代理

    1       课程目标 掌握nginx+tomcat反向代理的使用方法. 掌握nginx作为负载均衡器的使用方法. 掌握nginx实现web缓存方法. 2       nginx介绍 2.1    ...

  6. Mysql的transaction实现(转)

    (http://www.blogjava.net/i369/archive/2007/04/29/108906.html) transaction在数据库编程中是一个重要的概念,这样做可以控制对数据库 ...

  7. 织梦dedecms去除友情链接中的li和span

    文件:/include/taglib/flink.lib.php 1.去除友链中的li if(trim($ctag->GetInnerText())=='') $innertext = &quo ...

  8. oracle 递归查询(来源于网络)

    比如 a   b a   c   a   e b   b1 b   b2 c   c1 e   e1 e   e3 d   d1 指定parent=a,选出 a   b a   c   a   e b ...

  9. ListView优化的时候ViewHolder的简洁写法

    在ListVIew做复用优化的时候,经常会写ViewHolder,还需要很麻烦的去findview,我最讨厌写一堆的这样代码了,今天看到了一个极简的写法,很好用,很简洁啊!!! public stat ...

  10. php的yii框架开发总结2

    开发流程:1.用yii创建网站目录,当时用命令行创建时遇到了问题,试了很久才找到原因:我的原因是在yii/framework/yiic.bat这个文件中的一条语句: if "%PHP_COM ...