spring cloud 搭建记录

 

 

 

spring cloud eureka 服务 注册与发现 spring

eureka client 会对 eureka server 进行缓存,减低 eureka server 压力 ,就算  eureka server 挂了,也是能够从缓存 获取注册数据。api

 

 

eureka 缓存

 

eureka 进入保护模式,就不会再剔除 服务注册信息服务器

而 zookeeper 在遇到 网络分区故障,就会进行选举, 致使服务不可用网络

 

 

 

RestTemplate架构

restTemplate 是 访问rest 服务的 客户端 工具并发

 

Ribboncors

 

eureka 已经 引入了  ribbon . 也就是 默认已经实现了负载均衡

对服务提供者(当服务提供者提供了负载均衡的时候,也就是多个服务提供者的实例) 框架

的访问的时候 会进行负载访问 (也就是每次可能会访问不一样的 服务提供者的实例 )。

好比 服务提供者 的负载有两个,以下配置

user.ribbon.listOfServers=127.0.0.1:8083,127.0.0.1:8082

其余配置不变,仍是能够 起到  访问不一样的 服务提供者的功能的。

ribbon 会 每10秒去 ping 服务提供者的 地址,若是存活就是可用的

上图就是 ribbon 流程图

 

扩展 Feign

 

 

GTW token

 

 

jwt token 

有一个缺点,就是 发送出去的 token 在有效期内 没法 做废失效

 

swagger

 

cors

 

 

有些时候 post 请求也是会发送预检请求,由于它并非普通的post 请求了。

 

微服务架构之可靠性

 

故障隔离

1, 舱壁隔离, 线程隔离

2, 不一样服务,不一样服务的不一样超时控制,防止大量超时请求将线程给耗尽

3, 服务降级

4, 熔断机制: 就算有了 超时控制和服务降级仍是可能会形成服务器雪崩。

好比: 大并发下, 或者 不少请求失败或者超时,那么启动 熔断机制: 断路器开启

 

hystrix 原理

全链路追踪

目的

 

 

 

trace 即一次完整的 调用 全过程,(包括几个span, 调用了几个服务等),每一个trace ,

都有惟一的id 对应

span (跨度,每次调用一个微服务就有一个span, 每一个span 都有其id , 生成新的span的时候,都有其余对应的父span)

初始时候, span id 和 trace id 一致

 

annotation 

表明每次span 调用 的 标志 事件:  CS 即请求发送, SR 请求被服务端接收,  SS 服务端响应发送, CR 响应被接收

从左往右看 , 就算 全链路调用 了。 开始时候 service1 时候 x=a 

 

log4j2 引入

 

 

disruptor 

无锁化的,高性能并发框架
log4j2 能够借助其达到高性能的日志输出

 

spring cloud sleuth

 

sleuth 须要 用到 zipkin

api-gayway 和 服务都须要 引入 zipkin 和配置

1,

spring-cloud-starter-zipkin

2.同时 配置文件 加上 zipkin 配置

spring.zipkin.baseUrl=http://localhost:9411
#采样的比例,默认是0 ,1 就是 100% 采样
spring.sleuth.sampler.percentage=1

 

3. 搭建 zipkin server 

 

sleuth 原理

 

sleuth 如何经过 trace id   和span id  ,以及经过 zipkin server 查看到 调用状况?

开始用户请求的时候,经过拦截器进行拦截请求,进行处理。

而后 服务间调用的时候, 拦截 RestTeplate 请求和响应, 处理信息和放入 请求头和从响应内容里面获取 信息,好比将 对应得 trace id 放入 请求头里面。

这样下一个服务就知道了 是 那个 trace id 了。 

trace id 和 span id 相关信息都是 放入在 对应线程的 threadlocal   里面的, logj2 日志会 将 对应线程里面的  threadlocal  里面的 调用信息给取出来,

记录便可。

 

日志检索方案 ELK

kibana 可实化展现

elasticsearch 日志搜索

logstash 日志收集

 

 

也就是 经过 logstash  收集  微服务的 日志文件,将内容给 存入 elasticsearch , 而后 经过 kibana 平台去  搜索,分析和展现  elasticsearch 里面的  数据

 

 

以上 来自 慕课网 

相关文章
相关标签/搜索