最近开发的一个项目客户使用Windows服务器部署,启动方式黑窗口,访问时总是会遇到窗口卡住不动,微服务之间的相互调用失败。有时候一个操作可能要刷新重试好几次才能成功,开发过程中有三分之一的时间都花费在等服务器反应了,特别影响效率。今天终于在不耐烦的情况下研究了这个问题,找到了解决方案,最主要的是操作很简单,就一个小小的设置,愣是坑了这么久,想想以后遇到问题还是及时解决,才是最省时省力的方式。
参考博客:Windows系统启动springboot项目黑窗口卡主不动问题_架构师小跟班-CSDN博客
分析其问题出现的主要原因是:一个线程执行时,导致另一个线程IO阻塞,从而导致应用后台卡住。
解决方案就是:
1、将springboot日志输出改为异步方式,避免同步输出引起线程阻塞。
2、windows系统中cmd存在日志输出bug,经常导致日志卡住,具体表现为:命令行卡死不动,但是进程和线程依然再运行。此时敲一下回车键,命令行会马上打印卡死期间输出的信息。
这种情况下只需要对cmd窗口进行设置即可:右键窗口标题,属性,把快速编辑模式关掉就可以了。