[版权申明] 非商业目的注明出处可自由转载
出自:shusheng007
文章目录
概述
最近团队遇到一个问题,发现通过CI/CD发布的服务里面不包含自己的功能代码,于是两个小哥就开始扯皮了:开发说他的代码没有部署上去,运维说他已经部署了,于是两小哥相爱相杀了一下午。
难道就没有办法获取线上服务的当前版本信息吗?例如服务版本,构建时间,git提交记录等等。答案是肯定的,我们今天就来聊一下这个话题,这在快速迭代部署的微服务环境中环是极其有用的。
解决方案
其中一个解决方案就是通过SpringBoot提供的Actuator结合相关Maven插件来解决。通过Maven插件来生成build以及git的信息,然后通过Actuator的info
Endpoint 来暴露出相关信息。
{
"git": {
"commit": {
"user": {
"name": "shusheng007",
"email": "[email protected]"
},
"id": {
"full": "0cd06517ecced826f361e2291dc96f34807223ac"
},
...
},
"branch": "master",
},
"build": {
"artifact": "composite",
"name": "composite",
"time": "2024-03-06T14:25:31.933Z",
"version": "0.0.1-SNAPSHOT",
"group": "top.shusheng007"
}
}
下面我们就来实现以下
启用Actuator
Actuator 通过一系列Endpoint对外暴露应用非常多有用的信息,详情可以阅读相关资料。
那如何在Springboot程序中启用Actuator呢?
- 引入actuator依赖
创建一个Springboot程序,在pom.xml
文件中引入如下依赖
<dependency>
<groupId>org.springframework.boot<