采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
application.setWebApplicationType(WebApplicationType.SERVLET); 为啥我这边只有设置WebApplicationType.SERVLET才能启动起来,而老师的WebApplicationType.NONE就能启动起来
网上一通搜索,再加日志分析,确定就是设置WebApplicationType.NONE之后,主线程就关闭了,而之前启动的dubbo服务是daemon线程,不会阻止主线程关闭。主线程关闭之后整个spring容器就关闭了。而且是通过DubboShutdownHook优雅的关闭,所以退出状态是Process finished with exit code 0。
楼下提到的无论是引入spring-boot-starter或者spring-boot-starter-web都只是想阻止主线程关闭而已,而我们的provider并不需要这些依赖。
一种可行的办法是启动一个和主线程生命周期绑定的线程:
@SpringBootApplication @EnableDubbo public class ImProviderApplication { public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(ImProviderApplication.class); springApplication.setWebApplicationType(WebApplicationType.NONE); springApplication.run(args); new Thread( ()->{ synchronized (ImProviderApplication.class){ try { ImProviderApplication.class.wait(); }catch (Exception e){ e.printStackTrace(); } } } ).start(); } }
老铁牛逼我这就写进我的简历
请问有解决的办法吗 我也是起不来
我也起不来,暂且按照这个application.setWebApplicationType(WebApplicationType.SERVLET);往下走,就是多暴露一个端口。。。。。玄学一样的环境
是不是服务代码里面 没有需要暴露的dubbo服务,看看代码中有没有加dubboservice注解
这些都查过,代码直接check out的,代码一点儿也没改,就是数据库和nacos连接不一样。我之前还想提问,但是那个log日志太长了,慕课不允许 ,就查到了这个问题。+Servlet只是权宜之计。我还来回升级了一下dubbo,spring boot和bootstrap版本,都没啥用。。。日志就是exit 0,正常结束的感觉。也没报什么error。
我也是这个问题,请问解决了吗?
这里是不是只引入spring-boot-starter更好,感觉不需要引入spring-boot-starter-web
你这个建议也不错,可以试试看
试过了感觉挺好用,dubbo服务也会防止spring boot应用直接关闭
👍👍👍👍👍
我也是这个问题,请问视频中有展示暴露dubbo接口的服务上下文吗
登录后可查看更多问答,登录/注册
SpringCloudAlibaba高并发仿斗鱼直播平台实战
1.1k 16
533 9
182 7
351 7
387 7