使用assembly打包dubbo provider部署到Linux

在使用dubbo开发分布式项目时,一般都遵循如下架构

[外链图片转存失败(img-m8cwheJj-1564403658476)(D:\note\CSDN博客\1564230196296.png)]

最近在写的分布电商项目中

我使用了zookeeper作注册中心,provider作数据访问服务层

consumer就是一般开发的web项目,我按照功能分了几个子项目,只不过它进行数据访问

时,是通过注册中心也就是zookeeper获取到provider提供的服务,monitor是数据统计的一个服务,我项目中没用使用到。

以上是dubbo的大致架构,也是我项目的划分依据。

其中consumer依赖了注册接口就可以当普通项目直接部署

注册中心zookeeper占用单独的进程、端口号

而provider也是项目中独立的,重要的一块,下面讲讲如将provider何打包成一个独立的,可运行的jar包部署到linux上

打包provider模块

这是我的项目结构:其中dubbo-service-impl就是我们要打包的provider,我们用assmebly将它打包

[外链图片转存失败(img-XKqyr9yH-1564403658478)(D:\note\CSDN博客\1564236343404.png)]

1.由于Impl需要依赖service项目中的相关jar,所以打包前先将依赖的dubbo-service项目安装

​ 右键项目>run as >mavan install

2.在impl项目的pom文件加入assembly插件

<build>
		<plugins>
			<!-- 指定项目的打包插件信息 -->
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<!-- 指定打包描述文件的位置:相对项目根目录的路径 -->
					<!-- assembly打包的描述文件 -->
					<descriptor>assembly/assembly.xml</descriptor>
				</configuration>
				<executions>
					<execution>
						<id>make-assembly</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

3.在项目下创建文件夹assmebly,并在assmebly下创建文件assmebly.xml

在这里插入图片描述

4.assmebly.xml内容:

<?xml version='1.0' encoding='UTF-8'?>
<assembly
	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
	<!-- 该字符会添加到最终tar.gz包的名称后面,作为后缀 -->
	<id>assembly</id>
	<!-- 指定打包的格式为tar.gz,该类型压缩包在linux中比较常见 -->
	<formats>
		<format>tar.gz</format>
	</formats>
	<!-- 在tar.gz压缩包中是否包含根文件夹,该根文件夹名称和tar.gz去掉id后缀一致 -->
	<includeBaseDirectory>true</includeBaseDirectory>
	<fileSets>
		<!-- 将项目根路径下assembly/bin路径中的内容打包到压缩包中的根目录下的bin目录中 -->
		<fileSet>
			<!-- 相对项目根路径的相对路径 -->
			<directory>assembly/bin</directory>
			<outputDirectory>bin</outputDirectory>
			<!-- 设置最终tar.gz中该文件夹下的权限,跟linux权限写法一致 -->
			<fileMode>0755</fileMode>
		</fileSet>
		<!-- 将项目根路径下assembly/conf路径中的内容打包到压缩包中的根目录下的conf目录中 -->
		<fileSet>
			<directory>assembly/conf</directory>
			<outputDirectory>conf</outputDirectory>
			<!-- 设置其linux权限 -->
			<fileMode>0644</fileMode>
		</fileSet>
	</fileSets>
	<!-- 将所有依赖的jar包打包到压缩包中的根目录下的lib目录中 -->
	<!-- 此lib目录中包含自己开发的项目jar包以及demo_service.jar,还有第三方的jar包 -->
	<dependencySets>
		<dependencySet>
			<outputDirectory>lib</outputDirectory>
		</dependencySet>
	</dependencySets>
</assembly>

5.在assembly下创建bin和conf文件夹,里面还需要几个文件,把这几个文件复制进去,这里是是打包好的assembly

链接:https://pan.baidu.com/s/18kbdHp0KUl9emGXXIknRGg
提取码:fxk2

6.run as maven install 在target下生成压缩文件

[外链图片转存失败(img-jmgNHORv-1564403841048)(D:\note\CSDN博客\1564403441216.png)]

解压tar.gz结尾的文件

[外链图片转存失败(img-rtbGxMbn-1564403841049)(D:\note\CSDN博客\1564403549130.png)]

发现里面有个bin目录,windows下启动start.bat,linux中启动start.sh,即可启动这个provider

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值