SpringBoot之项目管理

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
SpringBoot之项目管理


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

在当今的软件开发领域,项目管理是至关重要的一环。它确保了项目的按时交付、质量的保证以及团队的高效协作。而在 Spring Boot 框架的加持下,项目管理变得更加高效和便捷。
在这篇博客中,我将介绍两个在 Spring Boot 项目管理中非常重要的方面:指标监控和日志管理。这两个内容对于确保项目的顺利运行和问题的快速定位起着关键作用。
指标监控可以帮助我们实时了解项目的性能和健康状况。通过收集和分析各种指标数据,我们可以及时发现系统的瓶颈、异常情况和性能问题,并采取相应的措施进行优化和修复。日志管理则是我们了解系统运行情况的窗口。它记录了系统在运行过程中产生的各种日志信息,包括错误日志、调试日志和操作日志等。通过有效的日志管理,我们可以快速定位和解决问题,同时还可以进行数据分析和统计,为项目的优化和改进提供依据。
在接下来的博客文章中,我将深入探讨指标监控和日志管理的具体实现方法和最佳实践,分享一些实用的工具和技巧,帮助你更好地管理 Spring Boot 项目。无论你是项目经理、开发人员还是运维人员,这些内容都将对你有所帮助。
让我们一起探索 Spring Boot 的世界,提升项目管理的水平,助力项目的成功交付!


提示:以下是本篇文章正文内容,下面案例可供参考

一、指标监控

Spring Boot Actuator的使用

在 Spring Boot 中,指标监控是指对应用程序的性能指标进行实时监测和收集的过程。通过指标监控,我们可以了解应用程序的运行状况、资源利用率、请求响应时间等关键指标,以便及时发现问题、优化性能和进行故障排除。Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用,用法如下:
1.在被监控的项目中添加Actuator起步依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.编写配置文件

#开启所有监控端点
management.endpoints.web.exposure.include=*

3.访问项目:http://localhost:8080/actuator
通过URL可以调用actuator的功能:

URL查看的数据
/env环境属性
/health健康检查
/mappings显示所有的@RequestMapping路径
/loggers日志
/info定制信息
/metrics查看内存、CPU核心等系统参数
/trace用户请求信息

可视化工具展示actuator

Spring Boot Admin 是一个用于管理和监控 Spring Boot 应用程序的开源工具。它提供了一个集中式的界面,用于监控和管理多个 Spring Boot 应用程序。
使用 Spring Boot Admin 查看 actuator 生成的指标数据有以下几个优点:

  1. 集中式管理:通过 Spring Boot Admin,你可以在一个界面上集中管理和监控多个 Spring Boot 应用程序。这样可以方便地比较不同应用程序的性能指标,快速识别潜在的问题。
  2. 可视化展示:Spring Boot Admin 提供了一个直观的界面,用于展示应用程序的各种指标数据,如内存使用情况、请求计数、响应时间等。通过可视化展示,你可以更容易地理解应用程序的性能状况,并及时发现异常情况。
  3. 实时监控:Spring Boot Admin 可以实时监控应用程序的指标数据,并提供实时更新。这有助于你及时了解应用程序的动态变化,快速响应问题。
  4. 警报和通知:Spring Boot Admin 可以配置警报和通知机制,当指标数据达到特定阈值或发生异常情况时,你可以及时收到通知。这有助于你快速采取措施,避免问题的进一步恶化。
  5. 扩展和定制:Spring Boot Admin 提供了一些扩展点和定制选项,你可以根据自己的需求进行定制和扩展。例如,你可以添加自己的指标、添加自定义监控页面等。

使用 Spring Boot Admin 查看 actuator 生成的指标数据可以提供一个集中化、可视化、实时的监控和管理界面,帮助你更好地理解和优化应用程序的性能。

使用Spring Boot Admin服务端项目步骤

1.创建SpringBoot项目,添加SpringMVC和Spring Boot Admin服务端起步依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>

2.修改配置文件

# 端口号
server.port=9090
#日志格式
logging.pattern.console=%d{HH:mm:ss.SSS} %clr(%-5level) ---  [%-15thread] %cyan(%-50logger{50}):%msg%n

3.修改启动类

@SpringBootApplication
@EnableAdminServer //开启Spring Boot Admin服务端
public class MyadminApplication {
  public static void main(String[] args) {
    SpringApplication.run(MyadminApplication.class, args);
   }
}

4.在被监控项目添加Spring Boot Admin客户端起步依赖

<dependency>
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-starter-client</artifactId>
  <version>2.6.0</version>
</dependency>

5.修改配置文件

#Spring boot admin访问地址
spring.boot.admin.client.url=http://localhost:9090

6.此时Spring Boot Admin即可连接被监控的项目

二、日志管理

默认情况下,SpringBoot 使用 Logback 组件来管理日志。Logback 是由 log4j 的创始人设计的一个开源日志组件。在 SpringBoot 项目中,我们无需额外添加 Logback 的依赖项,因为 spring-boot-parent 已经包含了 Logback 的依赖。

如何配置日志管理文件?

1.在/resources下添加Logback配置文件logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
  <!--定义日志文件的存储地址-->
  <property name="LOG_HOME" value="${catalina.base}/logs/"/>
  
  <!-- 控制台输出 -->
  <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
    <!-- 日志输出编码 -->
    <layout class="ch.qos.logback.classic.PatternLayout">
      <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
      <pattern>%d{MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
      </pattern>
    </layout>
  </appender>
  
  <!-- 按照每天生成日志文件 -->
  <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!--日志文件输出的文件名-->
      <FileNamePattern>${LOG_HOME}/server.%d{yy99-MM-dd}.log</FileNamePattern>
      <MaxHistory>30</MaxHistory>
    </rollingPolicy>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <!--格式化输出:%d表示时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
      </pattern>
    </layout>
    <!--日志文件最大的大小-->
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <MaxFileSize>10MB</MaxFileSize>
    </triggeringPolicy>
  </appender>


  <!-- 日志输出级别 -->
  <root level="info">
    <appender-ref ref="Stdout"/>
    <appender-ref ref="RollingFile"/>
  </root>
</configuration>

注意:Logback配置文件名为logback-test.xml或logback.xml,如果classpath下没有这两个文件,LogBack会自动进行最小化配置。

代码中输出日志

@Controller
public class LogbackController {
  private final static Logger logger = LoggerFactory.getLogger(LogbackController.class);


  @RequestMapping("/printLog")
  @ResponseBody
  public String showInfo(){
    logger.info("记录日志");
    return "Hello Logback";
   }
}

如果日志过多,可以屏蔽一些包的日志,在配置文件中配置

#屏蔽org包中的日志输出
logging.level.org=off


总结

提示:这里对文章进行总结:

指标监控

  • Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用
  • 与监控系统集成,如SpringBoot Admin

日志管理

  • Spring Boot 默认使用 Logback 作为日志管理组件。
  • Logback 提供了灵活的日志配置和日志级别的控制。
  • 可以使用 Logback 的配置文件来定制日志记录的方式,包括日志格式、日志级别、日志轮转策略等。
  • 可以将日志输出到控制台、文件或远程日志服务器。

通过这两个主要内容,我们可以更好地管理和监控 Spring Boot 项目。指标监控帮助我们实时了解应用程序的性能和健康状况,而日志管理则提供了对应用程序日志的控制和查看能力,有助于故障排查和调试。