关于springboot + dubbo 部署启动方式(Windows版)

字数 748阅读 527
首发.png

项目结构

注:项目构建通过: http://start.spring.io/ 快速构建web 项目,
具体操作可以参考《SpringBoot使用SpringDataJPA完成数据查询 -Demo》。
本次项目搭建应用的组件是springboot + dubbo + mybatis + redis +maven
演示是基于之前构建的项目为基础
详情可以参考:
SpringBoot + Dubbo + Mybatis 分层实现分布式服务
本次项目简单叙述如何在springboot框架当中进行配置完成windows版的部署方案。
在基础环境确定好了之后,我们项目的目录结构如下:
项目结构与之前相同
可参考《SpringBoot + Dubbo + Mybatis 分层实现分布式服务

image

部署介绍

本次详细介绍使用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:核对访问路径和端口是否正确

image

qrcode_for_gh_6b52a2c51061_258.jpg

推荐阅读更多精彩内容

  • 也不知道昨天晚上做了什么,反正清晨起床起得相当困难,两个闹钟都没叫醒,还好在无意识中,忽然间就醒了。 要带饭盒,还...
  • 2003年某日,江苏宜兴的小王来到念佛堂(也是我的住处),我们素不相识,因儿子的因缘,搭他的小汽车去芜湖探...
  • 是不是每次制定完计划都觉得整个人生充满了光明,是的,你欠缺执行力,有本事你就照着计划做一次,像师傅一样,向...
  • 每一颗寂静或者沸腾的心里 不管承不承认只要穿过迷雾 或大或小都有生出一片围城 那里有不大的山不多的...
  • 最近一直在审核代码,在看大家的代码的过程中发现一些问题,慢慢也总结出了一套 审核代码最最初级的原则: 新建的数据库...