关于springboot + dubbo 部署启动方式(Wind
项目结构
注:项目构建通过: http://start.spring.io/ 快速构建web 项目,
具体操作可以参考《SpringBoot使用SpringDataJPA完成数据查询 -Demo》。
本次项目搭建应用的组件是springboot + dubbo + mybatis + redis +maven
演示是基于之前构建的项目为基础
详情可以参考:
《SpringBoot + Dubbo + Mybatis 分层实现分布式服务》
本次项目简单叙述如何在springboot框架当中进行配置完成windows版的部署方案。
在基础环境确定好了之后,我们项目的目录结构如下:
项目结构与之前相同
可参考《SpringBoot + Dubbo + Mybatis 分层实现分布式服务》
部署介绍
本次详细介绍使用springboot + dubbo 在windows 系统中实现部署方案,并详解如何利用脚本实现一键部署方案
我们用之前已经搭建好的项目为例,这里项目搭建不详细介绍,可以参考往期《SpringBoot + Dubbo + Mybatis 分层实现分布式服务》
部署配置详细情况下面一一介绍:
首先我们可以在dubbo提供者中也就是在项目hdd-doorplate-dubbo-server的这个模块中的pom文件 利用maven的配置进行配置
<build> <filters> <filter>src/main/resources/application.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.4</version> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptor>src/main/assembly/assembly.xml</descriptor> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-compiler-javac</artifactId> <version>1.8.1</version> </dependency> </dependencies> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.10</version> <configuration> <skip>true</skip> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> </plugins> </build>
然后我们新建模块assembly 这个模块,注意、这个模块需要和pom文件中的配置信息对应,名字起什么无所谓
image.gif然后在assembly.xml中进行打包输出的配置
<assembly> <id>assembly</id> <formats> <format>tar.gz</format> </formats> <includeBaseDirectory>true</includeBaseDirectory> <fileSets> <fileSet> <directory>src/main/assembly/bin</directory> <outputDirectory>bin</outputDirectory> <fileMode>0755</fileMode> </fileSet> <fileSet> <directory>target/classes</directory> <outputDirectory>conf</outputDirectory> <fileMode>0644</fileMode> <includes> <include>*.properties</include> </includes> <excludes> <exclude>log4j.properties</exclude> </excludes> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>lib</outputDirectory> <scope>runtime</scope> </dependencySet> </dependencySets></assembly>
我们包含的是所有的properties的文件,除过log4j的文件,所有的jar包全部放在lib的文件,启动脚本放在bin文件中
在bin文件中编写脚本启动方式:
@echo off & setlocal enabledelayedexpansiontitle hdd-serverset LIB_JARS=""cd ..\libfor %%i in (*) do set LIB_JARS=!LIB_JARS!;..\lib\%%icd ..\binif ""%1"" == ""debug"" goto debugif ""%1"" == ""jmx"" goto jmxjava -Xms64m -Xmx1024m -XX:MaxPermSize=64M -classpath ..\conf;%LIB_JARS% com.herbert.hdd.HddDoorplateDubboProviderApplicationgoto end:debugjava -Xms64m -Xmx1024m -XX:MaxPermSize=64M -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -classpath ..\conf;%LIB_JARS% com.herbert.hdd.HddDoorplateDubboProviderApplicationgoto end:jmxjava -Xms64m -Xmx1024m -XX:MaxPermSize=64M -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -classpath ..\conf;%LIB_JARS% com.herbert.hdd.HddDoorplateDubboProviderApplication:endpause
最后所有的配置都已经完成,在springboot中内置了tomcat容器,我们在pom文件中可配置
<!-- Spring Boot Web 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
所以我们对外提供的接口的配置信息,与上述配置信息相同,也可以进行上述的maven配置来构建我们的启动方式。
在所有的配置已经完成,来测试一下:我们先利用maven去打包
image.gif打完的包经过解压得到的文件,然后就可以在bin中找到启动start.bat文件,去启动rpc服务。
image启动成功
我们在去启动我们服务消费的web类,同理启动
然后我们访问测试:
image由此可以见这次打包已经成功。
需要注意事项:
1:注意pom文件和assembly.xml中文件的对应关系
2:确认对外显示的配置文件包含的和未包含的配置
3:在启动的脚本中注意配置属于自己的启动类的包名
4:本项目使用的是dubbo,注意是否开启注册中心
5:核对访问路径和端口是否正确
imageqrcode_for_gh_6b52a2c51061_258.jpg