大话程序猿眼里的高并发(上)

高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝。

高并发会来带的后果

  • 服务端:

  • 用户角度:

  • 我的经历:

下面我进行实例分析,简单粗暴,动态分析,纯属本人个人经验分享,如有说错,或者有更好的建议或者意见的请留言,大家一起成长。

并发下的数据处理:

通过表设计,如:记录表添加唯一约束,数据处理逻辑使用事物防止并发下的数据错乱问题

这里主要讲述的是在并发请求下的数据逻辑处理的接口,如何保证数据的一致性和完整性,这里的并发可能是大量用户发起的,也可能攻击者通过并发工具发起的并发请求


如例子:通过表设计防止并发导致数据错乱

  • 需求点

  • 已知表

  • 我的设计


如例子2(事务+通过更新锁 防止并发导致数据错乱 或者事物+Update的锁表机制)

  • 需求点:

  • 已知表:

  • 高并发意淫分析(属于开发前的猜测):

  • 我的设计:


如例子3(通过程序代码防止包并发下的数据错乱问题)

  • 需求点:

  • 问题点:

  • 解决问题:


访问量大的数据统计接口

  • 需求: 用户行为数据统计接口,用来记录商品展示次数,用户通过点击图片,或者链接,或者其他方式进入到商品详情的行为次数

  • 问题点:

  • 意淫分析:

  • 解决问题:


高并发的下的服务器压力均衡,合理站点架设,DB部署

以下我所知道的:

  1. 服务器代理nginx,做服务器的均衡负载,把压力均衡到多台服务器

  2. 部署集群 mysql数据库, redis服务器,或者mongodb服务器,把一些常用的查询数据,并且不会经常的变化的数据保存到其他NoSQL DB服务器中,来减少数据库服务器的压力,加快数据的响应速度。

  3. 数据缓存,Cache

  4. 在高并发接口的设计中可以使用具有高并发能力的编程语言去开发,如:nodejs 做web接口

  5. 服务器部署,图片服务器分离,静态文件走CDN

  6. DBA数据库的优化查询条件,索引优化

  7. 消息存储机制,将数据添加到信息队列中(redis list),然后再写工具去入库

  8. 脚本合理控制请求,如,防止用户重复点击导致的ajax多余的请求,等等。

并发测试神器推荐

  1. Apache JMeter

  2. Microsoft Web Application Stress Tool

  3. Visual Studio 性能负载

本系列:

  • 大话程序猿眼里的高并发(上)

  • 大话程序猿眼里的高并发(下)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值