Spring Boot的自动装配及starter的引入,大量的Spring Bean的装配变成黑盒。
为了支持以配置化的方式调整应用行为,如Web服务端口等,Spring Boot提供了Production-Ready
Spring Boot Actuator
- 使用场景:监视和管理投入生产的应用
- 监管媒介:HTTP或JMX断电(Endpoints)
- 端点类型:审计(Auditing)、健康(Health)和指标收集(metrics gathering)
- 基本特点:自动运用
Spring Boot Production-Ready特性使用了Java Web和JMX面积与Spring Boot自动装配实现。
Spring Boot引入了Actuator实现
Spring Boot Actuator用于监控和管理Spring应用,可通过HTTP Endpoint或JMX Bean与其交互
Spring Boot Actuator Endpoints简介
需要开启Spring Boot Actuator需要添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
这些endpoint所显示的信息功能如上图。
默认只有health和info为默认暴露的Web Endpoints,如果需要暴露其他则需要在配置文件或启动参数中配置,这类属性配置资源被称为外部化配置
在配置文件中设置management.endpoints.web.exposure.include=*
即可通过http访问actuator访问所有相关信息
由上图的beans可知启动类DemoApplication由于@SpringBootApplication注解也被注册为bean对象,且默认都为单例
理解“外部化配置”
相同的应用代码可以根据所处的环境,差别地使用外部的配置来源,Properties、YAML、环境变量、启动参数等
上图中17种外部属性源配置,按优先级依次递减例如命令行参数优先于配置文件
application.properties也是PropertySource的17种资源的一种
PropertySource(属性源)是外部化配置API的描述方式。外部配置属性源(PropertySource)是外部化配置的媒介,它可以是配置文件的形式(apllication'properties或application.yml),也可以是环境变量(OS environment variables)或命令行参数(Command line arguments)等
规约大于配置
Spring Boot中间无代码生成,也无须配置XML
Spring Boot与微服务
官网提供的特性中
Spring Boot提供starter属于Maven管理依赖的范畴,约定大于配置,简化XML在Spring Framework 3.1已经全面支持
Spring Boot自身的特性主要有
- SpringApplication
- 自动装配
- 外部化配置
- Apring Boot Actuator
- 嵌入式Web容器
Spring Boot作为微服务中间件
Spring Boot自身的特性称为微服务中间件的基础,为Spring Cloud提供了基础
Spring Cloud提供一些快速构建通用的分布式系统,其包含特性如下:
- 分布式配置
- 服务注册和发现
- 路由
- 服务调用
- 负载均衡
- 熔断机制
- 分布式消息
Spring Cloud高度抽象的接口是透明的,不需要关心底层实现,但当需要更替实现时,按需配置即可,不需要过多的业务回归测试
Spring Cloud Stream的整合,使得不同的通道之间可以自由地切换传输介质,达到数据通信的目的,例如消息、文件、网络等
Comments | 0 条评论