SpringBoot项目
十四说四十、
一只努力搬砖的985小硕
展开
-
重新学习Cookie与Session
目录CookieCookie是由网景公司的前雇员卢在1993年3月发明的由来:以前的公司在十点到十点半是上午茶的时间,有个人很喜欢吃小甜饼,吃的久了,身上就带了这个味道。他从别人经过的时候别人闻到了小甜饼的味道就知道是他,所以我们在请求的时候带上cookie就知道是谁了。是一种会话跟踪技术。由于http 请求是无状态的,第一次的请求-响应不会影响下一次的请求-响应。是由服务器发出的,...原创 2020-03-07 02:27:58 · 167 阅读 · 0 评论 -
【性能优化,打造亿级秒杀系统】- (八)防刷限流
目录概述一. 验证码1.1 代码实现概述本章介绍了常见的黄牛入侵手段,以及如何使用对应的防刷手段防止黄牛入侵。同时业务的发展预估永远可能高于系统可承载的能力,因此介绍了使用多种限流技术保证系统的稳定。本章学习目标:掌握验证码生成与验证技术;掌握限流原理与实现;掌握防黄牛技术;一. 验证码包装秒杀令牌设置,需要验证码来错峰,分散用户的请求;数学公式验证码生成器;1.1...原创 2020-03-04 23:18:03 · 746 阅读 · 0 评论 -
【性能优化,打造亿级秒杀系统】- (七)流量削峰
目录概述一. 秒杀令牌1.1 原理1.2 代码实现二. 秒杀大闸原理2.1 原理2.2 代码三. 队列泄洪原理3.2 代码实现四. 本地OR分布式概述上一章节使用了多级缓存+分布式事务管理,即便查询优化,交易优化技术用到极致后,只要外部的流量超过了系统可承载的范围就有拖垮系统的风险。本章通过秒杀令牌,秒杀大闸,队列泄洪等流量削峰技术解决全站的流量高性能运行效率。项目缺陷:秒杀接口会被脚本...原创 2020-03-03 19:52:45 · 411 阅读 · 0 评论 -
【性能优化,打造亿级秒杀系统】- (六)事务性消息
目录异步同步数据库问题解决方案构建库存流水表数据类型库存售罄后置流程销量逻辑异步化交易单逻辑异步化异步同步数据库问题异步信息发送失败扣减库存执行失败下单失败无法正确补回库存解决方案构建库存流水表数据类型主业务数据master data操作性数据log data业务场景决定技术选型设计原则: 宁可少卖 不可多卖方案:(一)redis 比实际数据库少...原创 2020-03-03 14:17:26 · 250 阅读 · 0 评论 -
RocketMQ 常见异常处理
本文主要来自https://blog.csdn.net/wangmx1993328/article/details/81588217 我是在这上面又加了自己遇到的问题以及解决办法目录MQClientException: No route info of this topic, TopicTest异常说明解决办法RemotingTooMuchRequestException: sendDef...转载 2020-03-01 11:39:25 · 2554 阅读 · 0 评论 -
【性能优化,打造亿级秒杀系统】- (五)商品活动缓存库存
目录完整下单逻辑图下单以及用户验证优化优化方案优化效果--jemter 压测RocketMQ 安装库存行锁优化方案完整下单逻辑图下单以及用户验证优化优化方案进行我们这一步骤是因为我们每次下单都需要查询数据库中的用户信息以及商品信息,我们把下过单的用户以及商品进行缓存,减少对数据库的访问。下面是代码:首先是商品信息:我们在ItemService 中添加 //item及promo ...原创 2020-02-29 00:50:24 · 620 阅读 · 0 评论 -
【性能优化,打造亿级秒杀系统】- (三)静态资源CDN引入
目录Cache Control 响应头有效性判断浏览器的三种刷新方式协商机制CDN自定义缓存策略静态资源部署策略(一)DNS 用CNAME 解析到源站回源缓存设置强推失效Cache Control 响应头告诉客户端我这个http请求的response 可不可以缓存,以什么样的方式缓存privtae (客户端可以缓存)public(客户端和代理服务器可以缓存)cache-control:...原创 2020-02-26 12:35:23 · 365 阅读 · 0 评论 -
【性能优化,打造亿级秒杀系统】(二)多级缓存设计
目录缓存设计原则多级缓存redis 缓存单机模式sentinal哨兵模式集群cluster模式热点本地缓存nginx proxy chche 缓存依靠文件系统存索引级的文件nginx lua 缓存缓存设计原则用内存将缓存推到距离用户最近的地方脏缓存的清理多级缓存redis 缓存把它当作集中式缓存的中间件,K-V 数据库。是一个易丢失的存储设备单机模式sentinal哨兵模式...原创 2020-02-24 13:23:48 · 801 阅读 · 0 评论 -
分布式会话
单机会话基于cookie传输sessionid : java tomcat 容器实现基于token 传输类似sessionid : java代码session实现分布式会话基于cookie传输sessionid : java tomcat 容器session迁移到redis使用springboot 提供好的解决方案加入两个依赖: <dependency> ...原创 2020-02-22 11:19:39 · 125 阅读 · 0 评论 -
Nginx高性能原因
学的现在还是非常肤浅,以后补上。epoll 多路复用java bio模型,阻塞进程式linux select模型,变更触发轮训查找,有1024数量上限epoll模型,变更触发回调直接读取,理论上无上限master worker 进程模型平滑重启,平滑加载配置,不会断开用户连接sbin/nginx -s reload协程机制依附于线程的内存模型,切换开销小遇阻塞及归还...原创 2020-02-21 13:46:43 · 382 阅读 · 0 评论 -
出现telnet: connect to address 数据库服务器地址: Connection refused的解决办法
我是在一台服务器安装了mysql只做数据库服务器又买了俩服务器当作应用服务器,问题就是应用服务器访问不了数据库[root@iZ2zehcpqb5ti81m38b7qzZ miaosha]# telnet 数据库服务器地址 3306Trying 数据库服务器地址...telnet: connect to address 数据库服务器地址: Connection refused我已经采取的...原创 2020-02-20 10:53:12 · 28231 阅读 · 0 评论 -
【性能优化,打造亿级秒杀系统】- (一)项目部署
项目是部署在Ubuntu下。总结下部署的流程以及一些步骤上的操作命令1. Java环境安装不说了。2. mysql 安装不说了3. 数据库部署首先需要把自己本地的数据库数据导出来,然后在远程的数据库上直接执行(相当于直接复制了)命令是:D:\programming_software\database\mysql-5.7.23-winx64\bin>mysqldump -uus...原创 2020-02-19 12:16:31 · 1038 阅读 · 4 评论 -
SpringBoot秒杀项目基础构建(四)交易模块开发
1. 交易模型设计注意:订单Id要用String类型,因为订单id每一位可能会有不同的特殊含义public class OrderModel { //交易单号,例如2019052100001212,使用string类型 private String id; //购买的用户id private Integer userId; //购买的商品id ...原创 2020-02-16 23:48:38 · 243 阅读 · 0 评论 -
SpringBoot秒杀项目基础构建(三)商品模块开发
开发前的准备我们在接到任务的时候比如需要开发一个商品模块,应该是不管三七二十一直接建立数据库呢还是思考数据模型呢。1. 首先编写商品数据模型public class ItemModel { private Integer id; //商品名称 @NotBlank(message = "商品名称不能为空") private String title; ...原创 2020-02-16 21:03:35 · 237 阅读 · 0 评论 -
SpringBoot秒杀项目基础构建(二)用户模块开发
代码架构整体采用了SpringMVC模式开发。dao层:是与数据库打交道,增删改查的语句在这里dataobject层:是数据库表到Java实体类的映射,是对于数据库里面数据的封装。sevice层:是处于上面controller层与dao层的中间层,处理各种服务请求的。model层:是领域模型,也就是把不同的表的字段但是是一个领域的整合在一起controller层:是直接与UI交互的层...原创 2020-02-12 22:45:45 · 278 阅读 · 0 评论 -
SpringBoot秒杀项目基础构建(一)项目框架搭建
创建项目选择maven-archetype-quickstart 主要是便于打成jar包输出下面的maven-archetype-webapp 主要是便于打成war包输出把java包 make as Source Root, text包 make as text source root 再在main包下创建一个resources 目录 然后make as resource二...原创 2020-02-12 10:17:44 · 253 阅读 · 0 评论