SpringCloud读书笔记

Spring Cloud (《Spring Cloud 微服务实战》)学习记录

    • 配置文件
    • 监控与管理

配置文件

Spring Boot 的配置文件除了可以使用传统的 properties 文件外,现在还支持 YAML文件。

application.properties
SpringCloud读书笔记_第1张图片

application.yml
SpringCloud读书笔记_第2张图片
YAML 目前无法通过@PropertySource注解来载配置。

自定义参数
例如在 application.properties 中添加
book.name = SpringCloudInAction
book.author = ZhaiYongchao
book.desc = b o o k . a u t h o r i s w r i t i n g 《 {book.author} is writing 《 book.authoriswriting${book.name}》

然后在应用通过@Value注解可以使用
@Value(“${book.name}”)
private String name;

一种上PlaceHold方式 格式为${…}
另一种上使用SpEL表达式。 格式为#{…}

命令行参数
Java -jar 启动Spring Boot应用还可以加指定应用的参数 Java -jar xxx.jar --server.port = 8888,直接以命令行的方式来设置server.port属性,并且将应用端口设为8888。这种方式启动可以使得应用在启动前端口号 等是可变的。

多环境配置
在Spring Boot中多环境配置的文件名格式 : application-{profile}.properties
其中{profile} 对应你的环境标识,如:
application-dev.properties: 开发环境。(默认)
application-test.properties: 测试环境。
application-prod.properties: 生产环境。
选择那个配置文件被加载通过 application.properties 文件中的spring.profiles.active 属性来设置,对应{profile}值。

配置加载顺序
SpringCloud读书笔记_第3张图片
SpringCloud读书笔记_第4张图片
从上到下优先级逐渐降低。

监控与管理

关于 spring-boot-starter-actuator 模块功能
根据应用依赖和配置自动创建出来的监控和管理端点。
配置总踩坑的可以好好看看啦,说我自己

/autoconfig: 此端点用来获取应用的自动化配置报告,还会列出各个候选项是否满足自动化配置的各个先决条件。所以,该端点可以帮助我们方便地找到一些自动化配置没生效, positiveMatches 中返回的是条件匹配成功的自动化配置, negativeMatches 中返回的是条件匹配不成功的自动化配置,同时也会显示配置要求,为啥匹配不成功。
SpringCloud读书笔记_第5张图片
可以看到 Health…Configuration.Data…Configuration 配置失败,它配置的先决条件为
org.springframework.jdbc.core.JdbcTemplate 类,由于没有引入相关依赖出错

/beans 该端点用来获取应用上下文中创建的所有Bean
包含信息如下:
bean:Bean的名称
scope:Bean的作用域
type: Bean的Java类型
resource:classes 文件的具体路径
dependencies: 依赖Bean名称

/configprops 用来获取应用中配置的属性信息报告

/env 该端点与上面相比,用来获取应用中所有可用的环境属性报告,包括环境变量,JVM属性,应用的配置属性,命令行中的参数。对密码等敏感信息通过属性中 password等用***代替。

/mappings 返回Spring MVC的控制器映射报告关系报告
SpringCloud读书笔记_第6张图片
/info 该端点用来返回一些应用自定义的信息。定义时带上info.xxx.xx

度量指标类
上面的端点提供一个静态配置应用报告,而度量指标类提供的报告是动态的,如:内存使用情况,HTTP请求统计,外部资源指标等。
•/metrics: 该端点用来返回当前应用的各类重要度量指标,比如内存信息、线程信息、 垃圾回收信息等。
• mem: 内存概要信息,包括分配给应用的总内存数量以及当前空闲的内存数量。这些信息来自java.lang.Runtime。
• heap* : 堆内 存 使用情况。 这 些 信 息息 来 自 java.lang.management.
MemoryMXBean 接口中 getHeapMemoryUsage 方法获取的 java.lang.
management.MemoryUsage。
• nonheap: 非堆内存使用情况。 这些信息来自 java. lang.management.
MemoryMXBean接口中getNonHeapMemoryUsage方法获取的java.lang.management.MemoryUsage。
• threads: 线程使用情况,包括线程数、守护线程数(daemon) 线程峰值(peak)
等, 这些数据均来自java. lang.management.ThreadMXBean。
• classes: 应用加载和卸载的类统计。这些数据均来自java.lang.management.ClassLoadingMXBean。
• gc: 垃圾收集器的详细信息, 包括垃圾回收次数gc.ps—scavenge.count、 垃圾回收消耗时间 gc.ps_scavenge.time、 标记-清除算法的次数 gc.ps marksweep.count、 标记-清除算法的消耗时间gc.ps_marksweep.time。 这些数据均来自java.lang.management.GarbageCollectorMXBean。
• httpsessions* : Tomcat容 器 的会话 使用情况。 包 括最大会话 数 httpsessions.max和活跃会话数httpsessions.active。 该度量指标信息仅在引入嵌入式Tomcat作为应用容器的时候才会提供。
• gauge: HTTP请求的性能指标之 一,它主要用来反映 一 个绝对数值。 比如上 面示例中的gauge.response.hello: 5, 它表示上 一 次hello请求的延迟时间为5毫秒。
• counter: HTTP 请求的性能指标之 一,它主要作为计 数器来使用,记录了 增加量和减少量。 上述示例中的counter.staus.200.hello: 11, 它代表了 hello请求返回200状态的次数为11。
• /health: 该端点在一开始的示例中我们已经使用过了,它用来获取应用的各类 健康 指标信息。在spring-boot-s七arter-ac七uator模块中自带实现了 一些常用资
源的健康指标检测器。这些检测器 都通过Hea巨hindicator接口实现,并且会根 据依赖关系的引入实现自动化装配, 比如下面列出的这些。
SpringCloud读书笔记_第7张图片
• /dump: 该端点用来暴露程序运行中的线程信息。它使用 java.lang.rnanagernen七. ThreadMXBean 的 durnpAllThreads 方法来返回所有含有同步信息的活动线程详 情。
• /trace: 该端点用来返回基本的 HTTP 跟踪信息。 默认情况下, 跟踪信息的存储采用 org.springfrarnework.boot.actuate.trace.InMernoryTraceRepository

好多啊 待加!p56

你可能感兴趣的:(SpringCloud)