典型场景:秒杀
一 提前准备工作
1.系统独立部署
2.做好系统性能容量规划 (两个方面 一是对系统性能有个计算,另外还需要对并发量有个预估)
容灾 和过载保护措施
3 系统的拆分 比如:按功能模块,按实时/非实时,按动态/静态等
4 设置商品定时上架的时间
5 服务器时钟同步
6 动态生成下单页面的URL(不能使用固定的url ,防止用户直接使用url提交)
二 前端页面
1:静态页面 + Ajax 获取动态内容: 比如 实时库存 活动状态 当前时间 等
2:CDN部署
3:静态页面和资源的缓存
4:JS对请求的过滤,比如 获取检验码,秒杀时间开始 或者已售完自动结束等
主要目的是快速获取页面 和减少对后端服务器的请求
今天太晚了 明天接着写
继续:
三Web前端
1:F5/Lvs +Nginx 来接收高并发的请求,并做负载均衡
2:Nginx + Lua + Redis 来做请求队列,并实现一些基本控制,比如:限流、账号参加次数检查、同
一IP讲求数检查等
3:Varnish 来缓存静态页面和静态资源
4: 进入Tomcat集群,先做一个预处理,判断这些账户是否能参与活动,比如 账号等级是否足够,账
号行为是否正常,是否在黑名单上等
四 逻辑层
1:按照Redis的请求队列进行先后处理
逻辑层 先去另一个Redis(处理成功的信息)
2:纯内存操作 + 异步
3:控制超卖
4:Redis 里面 存放着 SKU的库存数据
5:处理成功的信息也放在Redis里
其它注意事项
1:合理设计接口
2:应当及时告知用户结果
3:考虑业务规则,比如减库存的时机
4:服务器尽量集群,并做HA,做好灾备,避免雪崩
5:缓存服务器如果要重启,要做好预热
6:对抗作bi,比如:同一账户同时发多个请求,同一IP同时发大量请求、秒杀器采用多账户多IP发送
请求等
后面会紧跟着几篇java并发编程的例子
相关推荐
项目描述:一套以秒杀商品为目的而搭建制作的高并发系统。基本实现用户根据商家设定的库存量进行秒杀的过程。 技术描述:基于SpringMVC,Spring,MyBatis实现的高并发秒杀系统。代码设计风格基于RESTful,以c3p0...
3. 采用模拟 Proacto r的事件处理模式,利用线程池实现多线程机制,实现高并发通信,减少频繁创建和销毁线程带来的开销;(信号和互斥锁) 4. 主进程负责事件的读写,子线程负责业务逻辑——用有限状态机解析HTTP...
总结就是,高并发无定势,是要和具体的业务场景相结合的。无高并发场景,无高并发架构。 高并发目标 宏观目标 高并发绝不意味着只追求高性能。从宏观角度看,高并发系统设计的目标有三个:高性能、高可用,以及高可...
高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量...
该项目是模拟互联网高并发场景实现了一套商城秒杀系统,项目前后端分离,实现的功能包括用户登录、查看商品列表、查看秒杀商品详情、秒杀商品下单、下单结果通过邮件(短信)通知用户、用户超时未支付取消订单等业务...
利用redis缓存处理高并发业务,如积分抢购、活动等
高并发熔断限流工具 1.漏桶算法熔断限流可以保证外部系统稳定性 建议用于访问外部系统存在系统瓶颈,有限流等情况 2.令牌桶算法熔断限流可以保证内部系统稳定性 建议用于外部系统访问内部系统,内部系统存在瓶颈,...
主要介绍了PHP+MySQL高并发加锁事务处理问题解决方法,结合实例形式分析了PHP+MySQL事务处理相关操作技巧与注意事项,需要的朋友可以参考下
从亿万级业务处理到大型互联网高并发设计课程(16.11G) 〖课程介绍〗: 最前沿JAVA架构师技术内幕!是一次真正意义上的JAVA架构师的提升课程。课程内容不含基础内容,全程都是高能的提升技术,前篇部分的手写mybatis,...
3.11.1 请求解析和业务处理线程池分离 57 3.11.2 业务线程池隔离 58 3.11.3 业务线程池监控/运维/降级 58 3.11.4 如何使用Servlet 3异步化 59 3.11.5 一些Servlet 3异步化压测数据 64 4 限流详解 66 4.1 限流算法 67...
主要介绍了Springboot实现高吞吐量异步处理详解(适用于高并发场景),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
针对此类服务在业务和用户高并发过程中暴露的系统性能瓶颈问题,提出一种高效、可行的解决方案,实现高并发订票压力下代理系统对外部原生票务系统的过载压力保护;从而设计出一种新型的票务应用系统,以减少高并发...
├─11.08 开班典礼+分析mybatis框架原理并手写实现 .mp4 ├─11.11 手写mybatis.mp4 ├─11.13 手写mybatis框架+源码阅读-2.mp4 ├─11.13 手写mybatis框架+源码阅读-3.mp4 ├─11.13 手写mybatis框架+源码阅读.mp4...
高并发熔断限流工具 1.漏桶算法熔断限流可以保证外部系统稳定性 建议用于访问外部系统存在系统瓶颈,有限流等情况 2.令牌桶算法熔断限流可以保证内部系统稳定性 建议用于外部系统访问内部系统,内部系统存在瓶颈,...
如何解决企业海量业务需求,如何让海量数据业务加速处理,今天就让我们使用Linux系统编程和Linux网络编程,这两大板斧工具,来轻松解企业的海量业务需求。课程为分为两大核心内容进行,Linux系统编程运用高级的Linux...
对于大型的,需要进行高并发的网站或者对网络不太严格的场景,可以使用Nginx;对于大型的Web服务器的时候可以使用Haproxy;对性能有严格要求的时候可以使用LVS,就单纯从负载均衡的角度来说,LVS也许会成为主流,更...
为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路...
因为高并发 的时候是有很多用户在访问,导致出现系统数据不正确、丢失数据现象,所以想到 的是用队列解决,其实队列解决的方式也可以处理,比如我们在竞拍商品、转发评论微博 或者是秒杀商品等,同一时间访问量特别大,...
Java高并发高性能分布式框架从无到有微服务架构设计 Java高并发高性能分布式框架从无到有微服务架构设计 微服务架构模式(Microservice Architect Pattern)。近两年在服务的疯狂增长与云计算技术的进步,让微服务...