Spring Cloud 微服务实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud 微服务实战相关的知识,希望对你有一定的参考价值。

参考技术A 阅读《Spring微服务实战》笔记

项目地址: https://gitee.com/liaozb1996/spring-cloud-in-action

配置管理原则:

Spring Cloud Config 后端存储:文件系统、Git

标注引导类:

配置服务器配置:

创建配置文件:

访问配置:

客户端配置:

spring-cloud-config-client 依赖

boostrap.properties

刷新属性:

服务发现至关重要的原因:

传统服务位置解析(DNS+负载均衡器)的缺点:

服务发现实现组件:

构建 Eureka 服务:

标注引导类:

单机模式配置 :

每次注册服务都需要等待30秒,因为 eureka 需要连续接收 3 个心跳包才能使用该服务。

缓存注册表后,客户端每隔30秒会重新到 eureka 刷新注册表。

服务注册:

解决多网卡问题:

通过API获取注册表信息:(设置请求头 Accept:application/json )

http://localhost:8761/eureka/apps

http://localhost:8761/eureka/apps/organization

与 Ribbon 交互的客户端:

当使用二方包时需要在引导类添加 @EntityScan :

配置 RestTemplate:

DiscoveryClient:

支持 Ribbon 的 RestTemplate:

Feign:

OpenFeign 依赖:

Feign 会在运行时动态生成代理对象:

远程调用包括对远程资源和远程服务的调用。

远程调用会遇到两个问题:

四种客户端弹性模式:

为什么客户端弹性模式很重要:

客户端弹性模式提供了三种构建能力:

在引导类启动断路器:

配置属性手册: https://github.com/Netflix/Hystrix/wiki/Configuration

使用 Hystrix 默认配置对远程调用进行管理:

超时配置: execution.isolation.thread.timeoutInMilliseconds

配置后备策略:后备方法必须在同一类中并且具有相同的方法签名

配置舱壁:

Hystrix 断路的策略:

Hystrix 有三个级别的配置:

类级别配置:

Hystrix 有两个隔离策略:

如果使用 TREAD 策略,并且要将父线程的上下文传递到子线程中,需要自定义 HystrixConcurrencyStrategy

Zuul 提供的功能:路由映射、构建过滤器

依赖:zuul、eureka-client

标注引导类:

zuul 配置:



Zuul路由映射机制:

查询路由: http://localhost:8080/actuator/routes

调用服务: http://localhost:8080/license/license/1 (第一个 license 是服务ID,/license/1 是请求路径)

使用服务发现手动映射路由:

添加前缀:

手动配置静态路由:前面都是基于 eureka 上的服务id进行路由映射的,而这里是直接配置URL

Git + http://localhost:8080/actuator/refresh (POST)

Zuul 使用 Hystrix 和 Ribbon

Zuul 支持三种过滤器类型:前置过滤器、后置过滤器、路由过滤器

前置过滤器:向通过网关的请求添加 tracking-id

这里使用了 Zuul 的 RequestContext:

Zuul 不允许直接修改请求头部,这里通过 addZuulRequestHeader 添加头部信息,在调用远程服务会自动合并

为了方便应用获取 tracking-id,这里使用 Filter 获取请求头信息并映射到 UserContext 中:

为了在服务间调用传播 tracking-id 这里需要定义一个 和 RestTemplate:

项目中 license 会远程调用 orgnization,这里需要在两个微服务配置 Filter

以上是关于Spring Cloud 微服务实战的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud微服务实战教程|Spring Cloud教程

Spring Cloud微服务实战pdf高清版免费下载

PK1648-Spring Cloud微服务实战视频

Spring Cloud微服务实战

Spring Cloud微服务实战视频课程

Spring-cloud微服务实战:负载均衡ribbon