dubbo的启动方法
Dubbo服务的运行方式:
1、使用Servlet容器运行(Tomcat、Jetty等)----不可取 缺点:增加复杂性(端口、管理) 浪费资源(内存)
2、自建Main方法类来运行(spring容器) ----不建议(本地调试可用) 缺点: Dobbo本身提供的高级特性没用上 自已编写启动类可能会有缺陷
3、使用Dubbo框架提供的Main方法类来运行(Spring容器)----建议使用 优点:框架本身提供(com.alibaba.dubbo.Container.Main) 可实现优雅关机(ShutdownHook)
注意点: spring-context.xml <import resource="classpath:spring/spring-xxx.xml" />
一、服务的启动方式:servelet容器过于庞大,占用资源。
二、main方法在本地用的比较普遍,本地开发调试,单元测试,要掌握,不建议生产使用。
三、dubbo提供的启动类:建议使用dubbo服务自带的启动类,好处是优雅关机,避免强行关闭导致数据丢失。
以下是dubbo服务的打包及启动配置,打出jar包的服务:
- <build>
- <finalName>edu-service-user</finalName>
- <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-context.xml</include>
- </includes>
- </resource>
- </resources>
- <pluginManagement>
- <plugins>
- <!-- 解决Maven插件在Eclipse内执行了一系列的生命周期引起冲突 -->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <versionRange>[2.0,)</versionRange>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore />
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <classesDirectory>target/classes/</classesDirectory>
- <archive>
- <manifest>
- <mainClass>com.alibaba.dubbo.container.Main</mainClass>
- <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
- <useUniqueVersions>false</useUniqueVersions>
- <addClasspath>true</addClasspath>
- <classpathPrefix>lib/</classpathPrefix>
- </manifest>
- <manifestEntries>
- <Class-Path>.</Class-Path>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <type>jar</type>
- <includeTypes>jar</includeTypes>
- <useUniqueVersions>false</useUniqueVersions>
- <outputDirectory>
- ${project.build.directory}/lib
- </outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
五、启动jar包,定位到相应的目录下,执行 java -jar edu-service-user.jar &
修改spring-context.xml文件中对另外两个文件的引用路径:前面加上classpath:spring/spring-mybatis.xml
六、当然了,我们的服务是war包,直接部署在tomcat就ok了。配置如下:
- <build>
- <finalName>****-service</finalName>
- <resources>
- <resource>
- <targetPath>${project.build.directory}/classes</targetPath>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*</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>
- <pluginManagement>
- <plugins>
- <!-- 解决Maven插件在Eclipse内执行了一系列的生命周期引起冲突 -->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <versionRange>[2.0,)</versionRange>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore />
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <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>
- <encoding>UTF-8</encoding>
- <compilerArgs>
- <arg>-extdirs</arg>
- <arg>${project.basedir}/src/main/webapp/WEB-INF/lib</arg>
- </compilerArgs>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.6</version>
- <configuration>
- <warName>****</warName>
- <archive>
- <addMavenDescriptor>false</addMavenDescriptor>
- </archive>
- </configuration>
- </plugin>
- </plugins>
- </build>
dubbo的启动方法的更多相关文章
- dubbo服务启动的方式
dubbo服务启动的方式: 1.dubbo自带的脚本, 2.直接用main方法启动dubbo的spring容器,参见dubbo-test里的各个例子 3.dubbo的spring boot start ...
- angular2系列教程(十)两种启动方法、两个路由服务、引用类型和单例模式的妙用
今天我们要讲的是ng2的路由系统. 例子
- [DUBBO]Dubbo控制台查看方法
1.dubbo控制台安装方法网上较多,例如转载http://dtbuluo.com/blog/archives/37 2.dubbo控制台查看 由于我们组是开发安装的dubbo.zookeeper等等 ...
- [转]❲阮一峰❳Linux 守护进程的启动方法
❲阮一峰❳Linux 守护进程的启动方法 "守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问题的由来 ...
- Linux下memcached安装和启动方法
Linux下memcached安装和启动方法 1. 首先下载memcached 和 libevent 包. Memcached用到了libevent这个库用于Socket的处理.下面是下载的两个包文件 ...
- 免安装版Tomcat6.0启动方法
免安装版Tomcat6.0启动方法 1.下载Tomcat Zip压缩包,解压. 2.修改startup.bat文件: 在第一行前面加入如下两行 SET JAVA_HOME=JDK目录 SET CATA ...
- Service的两种启动方法
刚才看到一个ppt,介绍service的两种启动方法以及两者之间的区别. startService 和 bindService startService被形容为我行我素,而bindService被形容 ...
- viewController启动方法分析
viewController启动方法分析 转载:http://blog.csdn.net/dizzthxl/article/details/14170047 首先理清楚一个概念: 创建一个类和实例化一 ...
- xWorks下的硬盘启动方法
在VxWorks下进行开发调试,在目标机上加载VxWorks映像很重要,在目标机上加载VxWorks映像,最重要的是三个步骤: 第一步,修改config.h文件,在config.h文件里包括硬盘驱动. ...
随机推荐
- stm32 development
1.www.st.com st官网 2.www.stmcu.com.cn st中文网 3.www.stmcu.org.cn st中文社区
- 解决Redis中文乱码问题
启动客户端的时候添加 --raw 选项即可 wangyulong@code-local:~$ redis-cli 127.0.0.1:6379> set key1 '上海' OK 127.0.0 ...
- js 简单实现隐藏和显示
<html> <head> <meta charset="gb2312"> <title>隐藏和显示</title> & ...
- php中限制ip段访问、禁止ip提交表单的代码
在需要禁止访问或提交表单的页面添加下面的代码进行判断就可以了. 注意:下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改. <?php /加IP访问限制 if(geten ...
- idea运行web项目乱码
windows下idea中web项目乱码,主要原因是服务器端乱码(执行webservlet的时候,编码格式改变),导致客户端的编码格式与webservlet传递过的编码格式不一致. 前端网页的编码,通 ...
- python3之selenium.webdriver 库练习自动化谷歌浏览器打开百度自动百度关键字
import os,time,threading from selenium import webdriver from selenium.webdriver.common.keys import K ...
- BZOJ1050 [HAOI2006]旅行comf[并查集判图连通性]
★ Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得路径 ...
- centos7时区同步(时间24小时格式显示)
我们在服务器安装linux系统时,有时会因服务器时间或者时区不正确导致程序出现错误. 首先输入date命令查看当前的时间和时区.要注意CST EDT 等时区的区别 介绍一种与时间服务器上时间同步的 ...
- 手机端自适应缩放显示 js
<script> var _width = parseInt(window.screen.width); var scale = _width/640; var ua = navigato ...
- qt5--文件操作
文本文件的读写操作: #include "win.h" #include "ui_win.h" #include <QDebug> #include ...