《Spring Cloud微服务实战》读书笔记

第一章 基础知识

微服务架构,与单体系统的区别,实施步骤(略),选择Spring Cloud,简介。

第二章 微服务构建:spring boot

SB框架简介,yaml,
配置文件加载顺序:
命令行
SPRING_APPLICATION_JSON中的属性(配置在系统环境变量的内容)
java:comp/env中的JNDI属性
Java的系统属性,可以通过System.getProperty获得
操作系统环境变量
random.*配置的随机属性
位于当前应用的jar包之外,针对不同{profile}环境的配置文件内容,application-{profile}.properties或者yaml文件内容
位于当前应用的jar包之内,针对不同{profile}环境的配置文件内容,application-{profile}.properties或者yaml文件内容
位于当前应用的jar包之外,application.properties和yaml的配置文件内容
位于当前应用的jar包之内,application.properties和yaml的配置文件内容
在@Configuration注解修改的类,通过@PropertySource定义的属性。
应用默认属性,使用SpringApplication.setDefaultProperties定义的内容。

第三章 服务治理:Eureka

第四章 客户端负载均衡:Ribbon

第五章 服务容错保护:Hystrix

第六章 声明式服务调用:Feign

第七章 API网关服务:Zuul

第八章 分布式配置中心:config

第九章 消息总线:Bus

第十章 消息驱动:stream

第十一章 分布式服务跟踪:Sleuth

形式:[appname, traceId, spanId, exportable]
跟踪原理:

  1. 唯一标志TraceId
  2. 统计各处理单元的延迟,引入SpanID,开始和结束两个节点信息,以及其他元数据。

sleuth自动为当前应用构建各通信通道的跟踪机制:

  1. 通过MQ传递请求
  2. 通过zuul代理传递的请求
  3. 通过RestTemplate发起请求
    头信息在sleuth.Span源码里:X-B3-TraceId、X-B3-SpanId、X-B3-ParentSpanId、X-B3-Sampled、X-Span-Name。

抽样收集:
抽样收集策略是通过Sampler接口实现,默认使用PercentageBasedSampler接口,也可以使用AlwaysSampler。

与LogStash整合,创建bootstrap.properties文件(首先加载),其次加载logback-spring.xml,最后加载application.properties。除了logback配置的LogStash Appender,还可以使用LogStashTcpSocket-Appender将日志内容直接通过TCP socket输出到LogStash服务端。

与Zipkin整合
原因:ELK平台缺少对请求链路中各个阶段时间延迟的关注,以及延迟监控、时间消耗。
基于Google dapper。架构,四个核心组件:Collector、Storage、RESTful API、Web UI;
默认的收集方式是HTTP,可以换成MQ,减轻压力。

收集原理
Span:
Trace:
Annotation:
cs(Client Send):
sr(Server Received):
ss(Server Send):
cr(Client Received):
BinaryAnnotation:

数据存储
支持MySQL,ES,Cassandra等;注意选择的MySQL版本要和zipkin版本对应好,否则会出现问题。数据库的脚本在依赖zipkin-storage-mysql jar包里面可以找到:mysql.sql。
API接口
/api/v1/dependencies:GET
/api/v1/services:GET
/api/v1/span:GET
/api/v1/spans/:POST
/api/v1/trace/{traceId}:GET
/api/v1/traces/:GET,

posted @ 2018-09-02 10:46  johnny233  阅读(13)  评论(0编辑  收藏  举报  来源