使用Maven构建dubbo服务可执行的jar包

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1.使用Servlet 容器运行    ---不可取
 缺点:增加复杂性  浪费资源
原因:
tomcat 运行需要端口, 一个tomcat 跑多个服务,也需要配置端口,是一个问题, 增加管理的复杂性, 本身要多Servlet容器进行配置, 内存溢出之类的
浪费资源:什么程序不部署,单启动tomcat 就要消耗内存
实现:
      做成一个web工程 ,web.xml ,启动之后会在zk上注册服务
2. 自建main 方法来运行(Spring 容器)-- 不建议 (本地调试可用)
  缺点: Dubbo 本身提供的高级性能没用上, 自己编写的启动类可能会有缺陷
   原因: 自己写一个main 方法类,进行启动,本地开发,很方便, 但是不推荐生产使用,本地调试可以用, dubbo很多高级特性没用上。
3. 使用Dubb框架提供的main 方法来运行    (spring容器)--建议使用
   优点:框架本身提供 com.alibaba.dubbo.container.Main
   可实现优雅关机(ShutDownHook)
优雅关机, linux 命令 kill  -9命令会强制杀掉, 很多业务运行,现在申请关机, 业务逻辑还没执行完, 但是强制杀掉,会导致业务逻辑还没有处理完, 优雅关机,先不接受请求,检查线程是否运行,等待线程执行完,再进行关闭,可以实现不会立即关机, 详情查看官方文档
如何使用Maven进行构建dubbo服务可执行jar包:
首选:
    是pom.xml 中build标签

 

cpcn.payment  
Paymet  
jar  
1.0.0.01-SNAPSHOT  
Payment 

主要看一下build里面的配置:

Spring Container
自动加载META-INF/spring目录下的所有Spring配置。
配置:(配在java命令-D参数或者dubbo.properties中)
dubbo.spring.config=classpath*:META-INF/spring/*.xml ----配置spring配置加载位置

  
  
    edu-service-user  

      
          
            ${project.build.directory}/classes  
            src/main/resources  
            true  
              
                **/*.xml  
                **/*.properties  
              
          
          
          
            ${project.build.directory}/classes/META-INF/spring  
            src/main/resources/spring  
            true  
              
                spring-context.xml  
              
          
      
      
      
          
              
              
                org.eclipse.m2e  
                lifecycle-mapping  
                1.0.0  
                  
                      
                          
                              
                                  
                                    org.apache.maven.plugins  
                                    maven-dependency-plugin  
                                      
                                      
                                        copy-dependencies  
                                      
                                  
                                  
                                      
                                  
                              
                          
                      
                  
              
          
      
      
          
          
            org.apache.maven.plugins  
            maven-jar-plugin  
              
                target/classes/  
                  
                      
                        com.alibaba.dubbo.container.Main  
                          
                        false  
                        true  
                        lib/  
                      
                      
                        .  
                      
                  
              
          
          
            org.apache.maven.plugins  
            maven-dependency-plugin  
              
                  
                    copy-dependencies  
                    package  
                      
                        copy-dependencies  
                      
                      
                        jar  
                        jar  
                        false  
                          
                            ${project.build.directory}/lib  
                          
                      
                  
              
          
      
  

默认加载META-INF/spring

    需要将配置文件拷贝到指定目录下,

具体可以参考博客: 打包插件的使用

 

 

 

 

转载于:https://my.oschina.net/LucasZhu/blog/1558587

你可能感兴趣的:(使用Maven构建dubbo服务可执行的jar包)