使用maven构建dubbo服务可执行jar包
一、dubbo服务启动方式分析
1、使用Servlet容器运行(Tomcat、Jetty等)----不可取
缺点:增加复杂性(端口、管理)
tomcat/jetty等占用端口,dubbo服务也需要端口
浪费资源(内存):单独启动tomcat,jetty占用内存大
2、自建Main方法运行(Spring容器) ----不建议(本地调试可用)
缺点: Dobbo本身提供的高级特性没用上,自已编写启动类可能会有缺陷
3、Dubbo框架提供Main方法类运行(Spring容器)----推荐使用
优点:框架本身提供(com.alibaba.dubbo.container.Main)
可实现优雅关机 dubbo.shutdown.hook
消费者:停止时,不再发送新的请求,所有新的调用在客户端发生报错。然后检查有没有请求响应没有返回,若有等待返回。除非超时,则强制关闭。
生产者:停止时,先标记为不接收新请求,新请求过来时报错,让消费者尝试其他机器。然后检测线程池中,是否有其他线程正在运行,如果有等待线程执行完毕。除非超时,则强制关闭。
二、修改spring-context.xml
<import resource="spring-mybatis.xml" />
<import resource="dubbo-provider.xml" />
改为
<import resource="classpath:spring/spring-mybatis.xml" />
<import resource="classpath:spring/dubbo-provider.xml" />
三、修改服务pom.xml文件
在pom.xml 中加入build
<build>
<finalName>edu-service-user</finalName>
<resources>
<resource>
<targetPath>${project.build.directory}/classes</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include