dubbo调用service后返回对象null_最佳实践 -- Dubbo 服务化进程的一点思考

5b787753ec8b61073efa63bc07bd3774.png

最近主要负责公司的 dubbo 服务改造。在改造过程中,涉及到很多核心系统的编码。改造的系统涉及到核心系统,并且改造的系统一多,难免会产生一点胡思乱想。下面我就分享一下我在项目改造过程中的一点胡乱的想法。需要对大家有帮助:

1、统一的打包方式

对于之前项目中使用 restful 进行交互,项目的发布就没有版本这个概念。但在使用 dubbo 服务化就依赖版本这个概念。在项目中我们打包的方式和项目的版本的是相互绑定的。

这对于运维来说其实是一种负担。每次修改版本的时候都开发修改 build 脚本。而且运维也需要在CI/CD 的脚本也需要修改。

<build>
		<finalName>fintech-notice-client</finalName>
		<resources>
			<resource>
				<directory>${project.basedir}/src/main/resources</directory>
				<excludes>
					<exclude>**/env/**/*.properties</exclude>
				</excludes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

在运行的的 pom.xml 文件 的 build 标签添加 finalName 指定你需要发布项目的名称。打包以后就会生成 fintech-receipt-client.jar文件。这样发布就不需要依赖版本这个概念了。

2、统一的版本管理

下面是我理解的我们项目的依赖图:

d7391534f8f84ba8bdb540848f302434.png

在项目中,我们定义版本的方式都是各个项目中都定义一个版本号比如:

xxx-client :定义版本 1.0.0

xxx-service:定义版本 1.0.0

… 等等

在我的思维里,编码过程中,重复就是不好的。需要项目的依赖需要统一的版本管理。其实在我们的项目中,也有一个最顶级的项目父 POM。但是它没有发挥出它应有的作用。在这里我们需要一个 maven 的插件flatten-maven-plugin

<build>
	<plugins>
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>flatten-maven-plugin</artifactId>
			<version>1.0.0</version>
			<configuration>
			</configuration>
			<executions>
				<execution>
					<id>flatten</id>
					<phase>process-resources</phase>
					<goals>
						<goal>flatten</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

它的作用就是统一的包管理。只需要在项目父 POM 中如下定义:

f94436d1d17264deaf82ff9feb2ce4fa.png


它的子项目中只需要如下定义就可以了:

64449d808e5f54181b5e1b8b72eac7a8.png


这个主要是在查看 dubbo 源码的时候,发现它的包管理是基于此。哈哈,拿来主义。

3、最小化项目上传

服务化就涉及到 Jar 包依赖,并且我们项目的 Jar 包依赖是需要上传到 maven

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值