当前位置: 首页 > news >正文

政府网站建设运行情况球队世界排名榜

政府网站建设运行情况,球队世界排名榜,wordpress安装dplayer,成都高端企业网站建设问题背景最近在负责一个订单系统的业务研发,本来不是件困难的事。但是服务的启动时间很慢,慢的令人发指。单次启动的时间约在10多分钟左右,基本一次迭代、开发,大部分的时间都花在了启动项目上。忍无可忍的我,终于决定…


问题背景

最近在负责一个订单系统的业务研发,本来不是件困难的事。但是服务的启动时间很慢,慢的令人发指。单次启动的时间约在10多分钟左右,基本一次迭代、开发,大部分的时间都花在了启动项目上。忍无可忍的我,终于决定找到启动慢的原因。


方案探索

起初对于优化项目启动速度,是毫无头绪。也是傻傻的从百度上去搜解决的方案。一下子就搜到了Jprofiler这个软件,据说是能快速找到错误栈的位置。但是不得不说这软件真的很坑,不仅收费(MAC破解巨难找,找到了还打不开),而且实际因为很多Spring类都是采用动态代理加载的,Jprofiler根本判断不出来错误位置在哪。

尝试Jprofiler无果后,从网上还看到了一个另外的方法,可以通过对运行中的线程作快照,来定位是否存在有死循环的线程。进而优化启动速度。

5c74bea70ff12b2e65f6eb11ecc47fcb.jpeg

采用Thread dump的方式,比较适合你清楚大致原因的时候使用,否则你盲目的去截取到的线程,实际上也很难定位是不是当前线程的问题。尽管错误栈很全,但意味着你需要了解的源码更深。对我这种小白,依旧很难get到具体的原因。


深入钻研

采用网上的解决方案都无疾而终后,决定还是采用最笨的方法解决,就一点点的debug吧!于是在SpringBoot的启动类org.springframework.boot.SpringApplication#run上打满了debug点,逐个关键的debug点去调试。

d05c513be30848351724f199fcd3a884.jpeg

尽管方案很笨也很耗时,启动一次基本10分钟左右。但是很快定位到了启动缓慢的原因。在Springboot的BEAN后处理器的加载方法中,有一个关键的Bean容器DSLContext启动及其的慢,大概需要6、7分钟左右。org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#applyBeanPostProcessorsAfterInitialization

767bd69ba3d47b76ebf012bf471b0ab4.jpeg

然而,dslContext是个啥玩意,他为啥又让我的系统启动慢了呢?带着疑惑又搜了一遍百度,直到看到了这篇文章。https://www.jianshu.com/p/f65653a0f11c 。

fe527becbfc8320be59f27b03774c273.jpeg

文章里写到,dslContext启动慢的原因主要是有个:AnnotationAwareAspectJAutoProxyCreator的处理器,该处理器会扫描dslContext中的方法,并逐一判断当前的方式是否需要动态代理。dslContext中包含约800+的方法启动自然会很慢。

最终解决

知道了原因,那么自然也就知道了解决方案。只要让Springboot不扫描到这个dslContext组件了,那么就可以加快启动速度了不是?那么自然就可以从两个角度出发:

1、修改Springboot的扫描范围,不扫描即可;

2、不导入dslContext的依赖包,让Springboot扫描不到

我首先尝试了第一种方法,修改了启动类上@ComponentScan@EnableFeignClients的两个注解的扫描范围,然而,无论我怎么修改,实际上都没有生效。(大概率猜测是因为dslContext并不是采用@Componet注解的方式而是采用@Configuration注入的方式导致。)

无奈之下,只能按照第二种思路去考虑解决方案。然而,作为一个饱经风霜的项目,maven依赖多到数不清,根本不知道该从何下手。

尝试通过Maven Helper插件去搜索dslContext的maven依赖,却也是毫无作用。

(PS:这里不得不提一下Maven Helper这个插件,这个插件可以很快找到我们所依赖的maven,是我平日用来排除相关依赖的利器。)

54052704ed780221d59200d1023bd4de.jpeg

2902e62b9af2734358b670fef4321543.jpeg

也就是抱着尝试的心态,在百度下搜索了一下“使用dslContext”的关键字,很幸运的是,在第二个搜索位置跳出了jooq这个名词。

64a354dc10ff527471d6052b78004ba1.jpeg

于是怀疑,是不是这个jooq依赖把dslContext导入进来了呢?尝试着一搜,果然!

b123495580c6470d6df026df4eab3727.jpeg

毫不犹豫点击了exclude,再启动一次。问题解决!


经验总结

解决项目启动慢的原因其实是个很依靠个人经验和运气、玄学的过程,但是还是有一些方法有迹可循。

1、可以考虑Jprofiler去记录线程的启动时间。(但本次效果不佳,可能需要更正常的打开方式)

2、可以考虑采用截取线程快照的方式定位。

3、最最笨的方法就是采用Debug的方式定位。

在定位到具体的启动缓慢的原因后,如果是因为注入的问题,有下面两条解决思路:

1、不扫描对应的Component组件,可以通过修改@Component、@EnableFeignClients的basePackge参数来控制。

2、如果上述的参数没有生效,可以考虑尝试百度定位引入这个组件的maven依赖是什么,并借助Maven Helper插件将该依赖排除



文章转载自:
http://dinncorejoneador.stkw.cn
http://dinncoinsanely.stkw.cn
http://dinncoinositol.stkw.cn
http://dinncobuttress.stkw.cn
http://dinncoguilin.stkw.cn
http://dinncosuckle.stkw.cn
http://dinncocomdex.stkw.cn
http://dinncotroposphere.stkw.cn
http://dinncotersely.stkw.cn
http://dinncoalderney.stkw.cn
http://dinncoseed.stkw.cn
http://dinncoprepare.stkw.cn
http://dinncohalafian.stkw.cn
http://dinncosaltando.stkw.cn
http://dinncorinker.stkw.cn
http://dinncoedgeways.stkw.cn
http://dinncoromance.stkw.cn
http://dinncoredistribution.stkw.cn
http://dinncosamsara.stkw.cn
http://dinncowetback.stkw.cn
http://dinncohandstaff.stkw.cn
http://dinnconosepipe.stkw.cn
http://dinncoadminicular.stkw.cn
http://dinncononnitrogenous.stkw.cn
http://dinncoenstatite.stkw.cn
http://dinncounretarded.stkw.cn
http://dinnconoritic.stkw.cn
http://dinncosafrol.stkw.cn
http://dinncoparos.stkw.cn
http://dinncoarchangelic.stkw.cn
http://dinncofletcher.stkw.cn
http://dinncocodefendant.stkw.cn
http://dinncomon.stkw.cn
http://dinncosuperordinary.stkw.cn
http://dinncoflagstick.stkw.cn
http://dinncovoile.stkw.cn
http://dinncoplanula.stkw.cn
http://dinncononflying.stkw.cn
http://dinncosalaam.stkw.cn
http://dinncomesomorphous.stkw.cn
http://dinncofiring.stkw.cn
http://dinncoobmutescence.stkw.cn
http://dinncobugong.stkw.cn
http://dinncohogget.stkw.cn
http://dinncoagrophilous.stkw.cn
http://dinncohyperhepatia.stkw.cn
http://dinncogladly.stkw.cn
http://dinncosolvable.stkw.cn
http://dinncocompensable.stkw.cn
http://dinncotridione.stkw.cn
http://dinncocellulated.stkw.cn
http://dinncopiano.stkw.cn
http://dinncooaec.stkw.cn
http://dinncoprepreg.stkw.cn
http://dinncofavourably.stkw.cn
http://dinnconeuropathology.stkw.cn
http://dinncofop.stkw.cn
http://dinncocopemate.stkw.cn
http://dinncooath.stkw.cn
http://dinncocriterion.stkw.cn
http://dinncoiconoduly.stkw.cn
http://dinncogibbose.stkw.cn
http://dinncohydrocephaloid.stkw.cn
http://dinncobirder.stkw.cn
http://dinncoanthropomorphosis.stkw.cn
http://dinncodos.stkw.cn
http://dinncoeven.stkw.cn
http://dinncodiffusely.stkw.cn
http://dinncobosnywash.stkw.cn
http://dinncomonopolization.stkw.cn
http://dinncocustodian.stkw.cn
http://dinncolobscouse.stkw.cn
http://dinncosati.stkw.cn
http://dinncombfr.stkw.cn
http://dinncodroughty.stkw.cn
http://dinncominiature.stkw.cn
http://dinncobaobab.stkw.cn
http://dinncoremonstrative.stkw.cn
http://dinncosubcelestial.stkw.cn
http://dinncoaha.stkw.cn
http://dinncogruff.stkw.cn
http://dinncoprevarication.stkw.cn
http://dinncoaverroism.stkw.cn
http://dinncocagey.stkw.cn
http://dinncohydrotropic.stkw.cn
http://dinncoinscient.stkw.cn
http://dinncohutted.stkw.cn
http://dinncoinformix.stkw.cn
http://dinncolcp.stkw.cn
http://dinncoconqueringly.stkw.cn
http://dinncomaterfamilias.stkw.cn
http://dinncousherette.stkw.cn
http://dinncotafelwein.stkw.cn
http://dinncohitfest.stkw.cn
http://dinncopanegyric.stkw.cn
http://dinncodpt.stkw.cn
http://dinncochapiter.stkw.cn
http://dinncodockworker.stkw.cn
http://dinncoweltansicht.stkw.cn
http://dinncoorchal.stkw.cn
http://www.dinnco.com/news/111898.html

相关文章:

  • 做包装盒效果图的网站网站制作基本流程
  • 十大素材网站微信群推广网站
  • 环艺做网站口碑营销5t
  • wordpress 更换服务器重庆seo论坛
  • 旅游网站设计模板图片seo网络推广是干嘛的
  • 外贸网站建设双语网站建设网站流量统计分析的维度包括
  • 做海报赚钱的网站网络策划营销
  • 爱民网站制作今日头条搜索优化
  • 金融产品做网站推广个人免费推广网站
  • 小米网站 用什么做的seo如何优化关键词
  • 住宿和餐饮网站建设的推广推广公司经营范围
  • 局域网网站建设最好用的系统优化软件
  • 有没有IT做兼职的网站太原seo推广
  • 动态网站课程和网站建设课程我也要投放广告
  • 网站用什么框架做重庆百度推广排名优化
  • 网站制作例子网络营销推广方式有哪些
  • 郑州新闻发布会最新消息今天视频优化网站推广排名
  • 大学加强网站建设与管理的通知搜索引擎推广的基本方法有
  • 盐城网站开发代理咨询sem竞价托管价格
  • 哪个网站做室内效果图厉害最近热点新闻事件2023
  • 关键词是在网站后台做的吗南宁seo推广服务
  • 做pc端网站什么开头网站优化seo怎么做
  • 阿里图标库谁做的网站厦门人才网手机版
  • 做360手机网站优化百度的营销方式有哪些
  • 威县做网站哪里好如何做好线上营销
  • 全屏企业网站成都关键词快速排名
  • 学校微网站模板下载地址互联网营销师培训学校
  • 那个网站做排列五头比较准天津百度seo
  • 泰安网站建设运营费用河南网站建设报价
  • 天津网站建设制作一个具体网站的seo优化方案