中间件的生产环境包版本监控方案
2019-02-10 19:10
218 查看
版权声明:本博客所有文章皆为原创,转载请注明出处。 https://blog.csdn.net/fanzch/article/details/86712608
中间件的生产环境包版本监控方案
问题
在大型组织中,一个中间件可能需要维护多个版本,不同的业务线使用了不同版本,而且可能长期不升级。这样就带来一个严重的问题:如果忽然发现某个bug影响了多个中间件版本,如何确认那些业务线需要进行升级修复呢?
方案1
维护一个列表,详细记录哪个业务线使用了哪个版本。
缺点: 列表维护工作量巨大,时间长了是否还跟真实情况同步难以保证。
方案2
包扫描,利用扫描工具,搜索各个业务线的代码,找出使用了目标中间件的业务。
缺点: 扫描需要比较长的时间,且获取所有业务线的代码也可能有公司制度上的障碍。
方案3
利用Spring Boot功能。
- 步骤一:POM里添加spring-boot-maven-plugin,并加入goal。
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>build-info</goal> </goals> </execution> </executions> </plugin>
- 步骤二:启用actuator
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
- 步骤三:重新编译、打包
mvn package
- 步骤四:调用info接口(http://localhost:8080/actuator/info)
{ "build": { "version": "0.0.1-SNAPSHOT", "artifact": "demo1", "name": "demo1", "group": "com.example", "time": "2019-01-31T03:21:59.207Z" } }
可以看到包名和版本信息都有了。
但是大家需要注意,这个方案其实对Spring Boot程序有效,并不是针对中间件的。
针对中间件,还需要进行如下改进:
- 步骤五:在插件的配置里指定版本信息文件
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <outputFile>${project.build.outputDirectory}/META-INF/demo-info.properties</outputFile> </configuration> <executions> <execution> <goals> <goal>build-info</goal> </goals> </execution> </executions> </plugin>
- 步骤六:自定义版本信息Bean
这个有点长,建议大家参考spring-boot-actuator-autoconfigure包里的InfoContributorAutoConfiguration类的做法。
核心思想就是,读取前面步骤五生成的文件,注入一个info Bean。
相关文章推荐
- 公司内网环境下部署流量监控服务器的初步方案
- 监控和管理生产环境spring boot actuator
- 2018Java生产环境下性能监控与调优详解
- Java生产环境下性能监控与调优详解
- Spring Boot 监控和管理生产环境
- 用以生产环境的Hadoop版本比较
- 生产环境Shell脚本Ping监控主机是否存活(多种方法)
- 1.redis生产环境启动方案(主从架构)
- MySQL 系列(四)主从复制、备份恢复方案生产环境实战
- Spring Boot 监控和管理生产环境
- (8)企业生产环境用户权限集中管理项目方案案例
- CruiseControl.NET配置文件(生产环境版本,与SVN结合自动部署)
- MySQL 系列(四)主从复制、备份恢复方案生产环境实战
- Java生产环境下性能监控与调优详解(最新最全)
- 生产环境开源监控系统整合Nagios+Cacti+Nconf
- DBA:在生产环境中创建监控表DML的触发器
- Spring Boot24 之 监控和管理生产环境
- prometheus+grafana 监控生产环境机器的系统信息、redis、mongodb以及jmx
- svn版本控制方案:多分支并行开发,多环境自动部署
- MySQL 系列教程(四)【秒杀七年经验 LowB工程师】 主从复制、备份恢复方案生产环境实战