Spring 启动阶段接口 500 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
telnetning
V2EX    Java

Spring 启动阶段接口 500

  •  
  •   telnetning Mar 17, 2021 3609 views
    This topic created in 1867 days ago, the information mentioned may be changed or developed.

    Spring 新人,请教下这个问题,搜索相关问题只搜索到 dubbo 延迟暴露 相关的,但是这个项目不是 dubbo 的,就是一般的 Spring Boot 应用。

    问题是,在 Spring 启动阶段,会有大概 10s 的端口已监听但是访问 500 的情况。

    具体是:

    • 0-10s,Spring 还未监听端口
    • 10-20s,Spring 已经监听端口,但是整个应用未加载启动好,访问接口 500
    • 20s 以后,端口访问正常

    请教下大家,这个问题应该如何解决呢,正常的理想情况是,在整个应用启动完整之后,才监听端口,保证监听即可用。

    22 replies    2021-03-19 10:39:36 +08:00
    huifer
        1
    huifer  
       Mar 17, 2021
    Bean 实例化顺序
    chendy
        2
    chendy  
       Mar 17, 2021
    你确定是因为未启动好报的 500 么?应用的报错是什么?
    启动 20s 多少慢了点吧……
    telnetning
        3
    telnetning  
    OP
       Mar 17, 2021
    @chendy 应该是的,中间报错的请求,是 getBean 的结果为 null
    telnetning
        4
    telnetning  
    OP
       Mar 17, 2021
    @huifer 多谢,我了解下。是需要让对应的 Bean 在 Web 容器之前加载完成吗?
    Kasumi20
        5
    Kasumi20  
       Mar 17, 2021
    Spring 监听端口吗?是 Servlet 容器在监听吧。。。
    huifer
        6
    huifer  
       Mar 17, 2021
    @telnetning 不如放出代码在看看,getBean 为 null 就说明 bean 没有加载
    scxiazi
        7
    scxiazi  
       Mar 17, 2021   1
    你倒是把报错信息放出来
    telnetning
        8
    telnetning  
    OP
       Mar 17, 2021
    @Kasumi20 嗯嗯,是的
    telnetning
        9
    telnetning  
    OP
       Mar 17, 2021
    @scxiazi 公司网络限制,贴不出来。。。
    telnetning
        10
    telnetning  
    OP
       Mar 17, 2021
    @huifer 公司网络限制,贴不出来。。。
    yRebelHero
        11
    yRebelHero  
       Mar 17, 2021
    另外的端口监听吗?试试在 Application 这个类 implements CommandLineRunner,再重写 run 方法新建一个线程来监听。我之前也遇到过类似的情况,就是需要监听另外的端口,但是这个端口始终没法监听到,具体报没报错忘了,但是我是这么解决的。
    simple2025
        12
    simple2025  
       Mar 17, 2021
    java 启动这么慢的吗?
    telnetning
        13
    telnetning  
    OP
       Mar 17, 2021
    @chenqh 我一直以为 Spring 应用就是这么慢来着。。。
    simple2025
        14
    simple2025  
       Mar 17, 2021
    @telnetning 我用 py,启动不到 1s 钟的呀,可能是我用轻型框架的原因
    qwerthhusn
        15
    qwerthhusn  
       Mar 17, 2021
    报 500 看日志堆栈啊
    arvinsilm
        16
    arvinsilm  
       Mar 17, 2021
    加个 filter 之类的东西,系统没启动完成返回统一错误信息
    qinxi
        17
    qinxi  
       Mar 17, 2021
    @chenqh #12 解释型语言都快. 没运行到的 py 代码甚至不知道能不能跑
    simple2025
        18
    simple2025  
       Mar 17, 2021
    @qinxi 原来是这个原因的吗,嗯嗯,应该是这个原因吧
    bianjp
        19
    bianjp  
    PRO
       Mar 17, 2021
    先使用 Spring Boot Actuator 的健康检查接口检查应用状态,应用就绪后再开放给外部访问。

    https://docs.spring.io/spring-boot/docs/2.4.3/reference/htmlsingle/#boot-features-application-availability-managing
    jimrok
        20
    jimrok  
       Mar 17, 2021
    先初始化 bean,再启动 tomcat
    telnetning
        21
    telnetning  
    OP
       Mar 19, 2021
    @chenqh Spring 启动肯定比 py 应用启动慢多了的
    telnetning
        22
    telnetning  
    OP
       Mar 19, 2021
    @bianjp 是指让网关或者负载均衡器在开放应用给外部之前先检查接口应用状态?
    About     Help     Advertise     Blog     API     FAQ     Solana     1070 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 71ms UTC 22:38 PVG 06:38 LAX 15:38 JFK 18:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86