Java高并发商城秒杀系统11.16

课程目标:秒杀核心技术(针对瞬间的并发,方法有:加缓存,异步化来提高系统的吞吐量)

中间件:

RabbitMQ介绍:(AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。)
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

Redis介绍:(与MemoryCache的区别:Redis的好处是在服务器重启之后可以保持数据不丢,类似于一个内存的数据库,而MemoryCache无法做数据持久化。)

Druid介绍:阿里巴巴开源的一款连接池。特性:可以监控数据池中的连接,比如最大连接数,最长的时间等;

前端:

Thymeleaf介绍:服务端模版(类似JSP的功能)

后端:

MyBatis介绍:访问数据库,这里不用xml,直接在sql语句处加注解,将sql语句和dao的方法写在一起,方便理解。

JSR303介绍:服务端的一个验证框架。

 

搭建好之后实现一个分布式session,因为该应用一定分布式部署的。

顺序:缓存优化(将静态页面缓存到用户的浏览器端或手机端),用户请求到达cda(网站缓存重定向),cdn再往后是网关nginx,niginx也可以加缓存,nginx再往后是应用服务器,应用服务器也可以加缓存,比如页面缓存(将页面缓存到Redis中),秒杀系统的请求太多,需要用到消息队列处理异步,(大并发的瓶颈在数据库),最后安全优化(防刷,限流,验证码等)。

 

学到什么?

1、应对大并发?(a如何利用缓存;b如何使用异步)应用的横向扩展:分布式和负载均衡

2、如何编写优雅的代码(易扩展,好修改)

 

第一章

springboot环境搭建

集成Thymeleaf,Result结果封装

访问数据库MyBatis连接池+Druid

集成Jdeis+Redis安装+通用缓存Key封装

第二章 实现登录功能

数据库设计

明文密码两次MD5处理后存入数据库(安全方面考虑)

JSR303参数检验+全局异常处理器

分布式Session

第三章 实现秒杀功能

数据库设计

商品列表页(点击商品进入商品详情页)

商品详情页(点击秒杀按钮进入订单详情页)

订单详情页

第四章 JMeter压测

JMeter入门

自定义变量模拟多用户

JMeter命令行使用

Spring Boot打war包(Spring Boot很多时候并不是以jar包的方式运行的,而是打成war包放在Tomcat下面)

第五章 页面优化技术

(通过压测发现的不足进行优化)

页面缓存+URL缓存+对象缓存(目的是减少对数据库的访问,因为并发的瓶颈在数据库)

页面静态化,即前后端分离

静态资源优化

CDN优化

第六章 接口优化

Redis预减库存减少数据库访问

内容标记减少Redis访问

RabbitMQ队列缓存,异步下单,增加用户体验

RabbitMQ安装与Spring Boot集成

访问Nginx水平扩展

压测(对比优化前的压测)

第七章 安全优化

秒杀接口地址隐藏(防止秒杀之前获取到秒杀地址)

数学公式的验证码(防止恶意机器人,而且可以加长系统访问的时间)

接口防刷(1min限制访问10次)

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值