云端部署
腌制99%的咸鱼
这个作者很懒,什么都没留下…
展开
-
8、防刷限流技术
10.1 本章目标 掌握验证码生成与验证技术 掌握限流原理与实现 掌握防黄牛技术 10.2 验证码技术 包装秒杀令牌前置,需要验证码来错峰 数学公式验证码生成器 Util包内的CodeUtil package com.miaoshaproject.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.awt.i原创 2020-09-14 01:13:26 · 255 阅读 · 0 评论 -
7、流量削峰技术
本章目标 掌握秒杀令牌的原理和使用方式 掌握秒杀大闸的原理和使用方式 掌握队列泄洪的原理和使用方式 抛缺陷: 秒杀下单接口会被脚本不停的刷 秒杀验证逻辑和秒杀下单接口强关联,代码冗余度高秒杀下单和对活动是否开始是没有关联的,接口关联过高 秒杀验证逻辑复杂,对交易系统产生无关联负载 9.2秒杀令牌实现 秒杀接口需要依靠令牌才能进入 秒杀的令牌由秒杀活动模块负责生成 秒杀活动模块对秒杀令牌生成全权处理,逻辑收口 秒杀下单前需要先获得秒杀令牌 PromoService接口上实现generate原创 2020-09-13 18:55:18 · 292 阅读 · 0 评论 -
6、交易性能优化技术之事务型消息
8.1 事务型消息(上) 回顾整个下单流程,我们之前做了下单减缓存库存优化以及回补库存的操作,但是因为整个下单(OrderServiceImpl.java中的createOrder方法)是属于一个transaction事务,如果用户下单成功,会进行减库存的操作(在redis中),但是之后订单入库或返回前端的过程中失败,会进行事务回滚,之前操作失效数据库操作回滚,但是此时的redis不会回滚,之后会异步写入数据库,会导致库存还是减少了,会导致订单不出现,但是库存会减少的现象。这样会导致少卖,有可能造成库存堆积原创 2020-09-12 01:14:19 · 504 阅读 · 3 评论 -
5、交易性能优化技术之缓存库存
7.1 交易性能瓶颈 交易验证完全依赖数据库 库存行锁 后置处理逻辑 每次做交易,至少有六次的数据库io操作 7.2-7.3 交易验证优化 用户风控策略优化:策略缓存模型化 在开始交易后,针对活动实时信息和用户实时信息的验证,目的是为了风控策略,检查用户账号是否异常,是否异地登陆,策略是:通过异步的方式将用户模型写入缓存,与实时信息做一致性检验,做到风控策略 活动校验策略优化:引入活动发布流程,模型缓存化,紧急下线能力 实时活动的缓存存在一个问题:如果后台修改活动信息(修改活动结束时间),但redis原创 2020-09-11 01:29:36 · 525 阅读 · 0 评论 -
4、查询性能优化技术之页面静态化
6.1-6.2 静态资源CDN引入 用户将静态资源数据请求到ECS服务器,ECS服务器解析到腾讯云的CDN中,CDN可以理解为一个无限大的内容磁盘缓存,本身没有文件存储。当用户访问getItem的一个静态资源文件的时候,会根据路由规则查看本地是否有这样的文件,如果有直接返回,没有就回源到源站,回源到下面的OSS中获取静态资源文件。 CDN一边返回对应的文件,一边将文件按照http指示的生命周期缓存起来,以便下次用户访问时,直接返回。 CDN有很多的加速节点,当用户请求CDN的时候,CDN会返回一个就近的节点原创 2020-09-09 23:34:03 · 342 阅读 · 0 评论 -
3、查询性能优化技术之多级缓存
5.1本章目标 5.2缓存设计原则概览 缓存设计原则: 用快速存取设备,用内存 将缓存推到离用户最近的地方 脏缓存清理 我们的项目采用多级缓存的架构 第一级 Redis缓存 Redis缓存有集中管理缓存的特点,是常见NoSql数据库组件 第二级 热点缓存本地缓存 热点数据存到JVM本地缓存中 第三级 nginx proxy cache缓存 所有数据最后都会在nginx服务器上做反向代理,nginx服务器也可以开启proxy cache缓存 第四级 nginx lua缓存 nginx定制lua脚本做nginx原创 2020-09-09 20:25:43 · 771 阅读 · 0 评论 -
2、分布式扩展
本章目标 nginx反向代理均衡 分布式会话管理 使用redis实现分布式会话存储 1.单机容量问题,水平扩展方案引入 引入nginx反向代理负载均衡 上一章我们看到当单机系统时候,容量有限,响应时间变长TPS上不去的问题。nginx反向代理的功能就是代理后端Tomcat服务器集群,以统一域名方式来访问 单机容量问题,水平扩展 nginx反向代理 负载均衡配置 2.数据库远程开放端口连接 这次的水平扩展指的是对应用系统程序扩展,而mysql数据库只有一个,用来开放远端连接(mysql读写分离、分库分表等方法原创 2020-08-30 14:35:41 · 444 阅读 · 0 评论 -
1、秒杀系统的云端部署
1.安装jdk (1)使用rpm后缀的文件,进行安装 rpm -ivh 文件名 文件自动安装在/usr/java文件夹下 (2)安装完成之后进入根目录 cd ~ vim .bash_profile 增加以下命令 JAVA_HOME=/usr/java/jdk1.8.0_65 PATH=PATH:PATH:PATH:JAVA_HOME/bin 之后使用 source .bash_profile 更新环境变量,使得系统使用的java锁定在这个版本 2.安装mysql 安装mysql的所有依赖原创 2020-08-28 18:19:30 · 385 阅读 · 0 评论