![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot项目之性能优化
通过简单的案例讲解springboot项目的简单优化
双木L
菜鸟程序猿一枚
展开
-
SpringBoot项目优化之流量削峰--令牌、大闸、队列泄洪(七)
对于我们电商的购物系统来说,每逢大促或者类似秒杀场景的时候,若是活动异常火爆,我们的系统就得抗住所有来之外部所有浪涌似的压力,若是没有保护措施,我们的系统很难保证不被冲垮。这个时候我们就需要在活动之前提前对我们的系统做好保护措施。下面我们围绕其中的一点:【下单】操作做一个安全保护。其实我们的系统之前对于商品的查看浏览,热点商品的访问等都做了优化,例如之前提到的本地热点缓存+redis缓存,...原创 2020-04-23 23:38:50 · 1789 阅读 · 3 评论 -
SpringBoot项目优化之引入Guava中间件本地热点缓存的使用(六)
上一节我们使用了redis最为本地的缓存,缓存了商品的详细信息,大大提升了我们项目的性能,这一小节是在上一章基础之上做进一步的完善与性能提升,本地热点缓存的使用。是一个优先于redis缓存并高于redis的一个缓存策略,因为直接操作本地虚拟机内存所以性能极高,但是使用本地热点缓存得满足以下几点要求:1)首先缓存的一定是热点数据,就是一些访问频率较高的数据2)对于脏读不敏感3)内存是可控...原创 2020-04-22 22:18:56 · 570 阅读 · 0 评论 -
SpringBoot项目优化之引入Redis中间件缓存商品信息解决方案(五)
还记得第一小节【SpingBoot项目之性能压测并提高并发访问量(一)】,我们文末提到mysql数据库压力问题,这一小节会引入redis做缓存,分散数据库的压力,再次提升我们项目的性能redis作为我们的中间件缓存,其最好的优化思路便是距离我们用户请求最近的地方做缓存最为合适,因为当请求进来直接打在我们的controller上,查找缓存找到了相应的数据,便不用再次调用下游的service以及D...原创 2020-04-22 14:04:59 · 806 阅读 · 0 评论 -
SpringBoot项目之基于Token的分布式会话解决方案(四)
上一章节讲了【SpringBoot项目之基于Cookie传输sessionId的分布式会话解决方案(三)】,但是若是某些网站禁用了浏览器的cookie,我们的cookie方案就不能生效了,其实现在很多流行的互联网行业的网站都是基于token来实现分布式会话的,下面我们来看一下具体是如何实现的...原创 2020-04-22 00:14:45 · 854 阅读 · 0 评论 -
SpringBoot项目之基于Cookie传输sessionId的分布式会话解决方案(三)
上一章节讲到【SpringBoot项目高并发性能优化之Nginx负载均衡水平扩展(二)】,我们的项目做了分布式的水平扩容,利用nginx的负载均衡,但是此时我们的系统若是有用到用户登录态的地方都会遇到问题。例如我们的下单操作,会出现一个神奇的现象:当我们登录成功,浏览商品准备下单,但是此时会突然跳出您还没有登陆的提示,需要重新登陆,于是又重新登陆一次。重复操作又是提示登陆,根本无法下单。可能偶尔性...原创 2020-04-21 22:23:27 · 1554 阅读 · 0 评论 -
SpringBoot项目高并发性能优化之Nginx负载均衡水平扩展(二)
上一次我们讲解了springBoot项目内嵌tomcat并发访问数量提升的优化,但是毕竟单台服务器性能还是有限的,无法支撑我们更大的访问数量,这时候就需要我们进行水平扩容了。引入我们的nginx说到nginx,我们不得不提到它三个基本作用1)作为web服务器:(可以在其html文件目下直接存放项目的html,js,css等静态资源文件,暴露出静态资源的出口供用户访问)2)作为动静分离服...原创 2020-04-21 14:48:35 · 1802 阅读 · 0 评论 -
SpringBoot项目部署之外挂配置文件Deploy方式
实际项目开发中本地连接数据的连接信息,用户名,密码,端口等等信息往往写死在配置文件中,但是部署在不同的环境中的时候,不管是用户名还是密码等等信息都是不同的,面对这样的情况直接修改原配置文件显然是不现实的,每次打包之前都要修改配置文件中数据库的连接地址,显得尤为繁琐,这时候我么可以采用一种外挂配置文件的方式,也是我日常开发中部署项目经常使用的一种方式1)首先将我们的项目进行打包:mvn cl...原创 2020-04-20 18:04:08 · 2494 阅读 · 0 评论 -
SpingBoot项目之性能压测并提高并发访问量(一)
一般项目上线之前,除了我们的测试之外,其实性能压测也是必要并且很关键的一部分,这样会避免我们线上当遇到大的访问量的时候,项目请求无法响应或者响应超时的问题。解决这种大的并发问题,提高我们项目的访问量一直是我们项目性能经常需要探讨的一个问题,高并发的结局并不是无脑的扩容服务器,应该针对具体问题做出合适的性能优化策略。下面我会通过一个小案例来提高他的访问量说到性能压测,我们都离不开jmeter...原创 2020-04-20 23:33:35 · 12676 阅读 · 0 评论 -
SpringBoot+Mybatis集成以及DAO层代码Generator自动生成器的使用
1)首先创建我们的SpringBoot项目,这里使用Idea直接构建,很方便然后一直下一步即可,比较简单,不再多说项目构建完毕,引入我们的web依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifa...原创 2020-04-18 17:31:37 · 2169 阅读 · 1 评论