Dubbox应用部署运行

来源:互联网 发布:wephone创始人 知乎 编辑:程序博客网 时间:2024/06/05 16:59

Dubbox服务部署运行的三种方式:

一、使用Servlet容器(Tomcat、Jetty等)加载dubbo配置文件运行

缺点:占用端口、浪费资源(内存)、无法使用dubbo的一些高级特性

二、自建Main函数(通过Spring容器)加载dubbo配置文件

缺点:无法使用dubbo的一些高级特性、自己编写启动类可能有缺陷

三、Dubbo框架提供的Main方法类来运行
  • 约定优于配置,使用(com.alibaba.dubbo.container.Main)启动会自动加载classpath*:META-INF/spring下的配置文件
  • 可实现优雅关机(ShutdownHook)
  • 服务容器的加载内容可以扩展,内置了spring, jetty, log4j等加载,可通过Container扩展点进行扩展

四、Maven构建Dubbo服务可执行Jar包的配置

<build>        <resources>            <resource>                <targetPath>${project.build.directory}/classes</targetPath>                <directory>src/main/resources</directory>                <filtering>true</filtering>                <includes>                    <include>**/*.xml</include>                    <include>**/*.properties</include>                </includes>            </resource>            <!-- 结合com.alibaba.dubbo.container.Main -->            <resource>                <targetPath>${project.build.directory}/classes/META-INF/spring</targetPath>                <directory>src/main/resources/spring</directory>                <filtering>true</filtering>                <includes>                    <include>spring-*.xml</include>                </includes>            </resource>        </resources>        <plugins>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <version>3.1</version>                <configuration>                    <source>1.8</source>                    <target>1.8</target>                </configuration>            </plugin>            <plugin>                <artifactId>maven-surefire-plugin</artifactId>                <version>2.6</version>                <configuration>                    <skip>true</skip>                </configuration>            </plugin>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-resources-plugin</artifactId>                <version>2.7</version>                <configuration>                    <encoding>UTF-8</encoding>                </configuration>            </plugin>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-shade-plugin</artifactId>                <version>1.4</version>                <executions>                    <execution>                        <phase>package</phase>                        <goals>                            <goal>shade</goal>                        </goals>                        <configuration>                            <transformers>                                <transformer                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">                                    <mainClass><!-- Dubbox启动类路径 --></mainClass>                                </transformer>                                <transformer                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">                                    <resource>META-INF/spring.handlers</resource>                                </transformer>                                <transformer                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">                                    <resource>META-INF/spring.schemas</resource>                                </transformer>                            </transformers>                        </configuration>                    </execution>                </executions>            </plugin>         </plugins></build>



原创粉丝点击