Sleuth分布式请求链路跟踪
Sleuth 分布式请求链路跟踪1、Sleuth 介绍1-1、为什么会出现这个技术?需要解决哪些问题?在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。
官网:https://github.com/spring-cloud/spring-cloud-sleuth
1-2、是什么Spring Cloud Sleuth 提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了 zipkin
2、搭建链路监控步骤2-1、zipkin 搭建安装下载SpringCloud 从 F 版起已不需要自己构建 Zipkin Server 了,只需调用 jar 包即可
zipkin 下载地址:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/zipkin-server-2.12.9-exec.jar
运行 jar1java -j ...
Stream消息驱动
Stream 消息驱动1、消息驱动 Stream 介绍1-1、Stream 为什么被引入常见 MQ(消息中间件):
ActiveMQ
RabbitMQ
RocketMQ
Kafka
有没有一种新的技术诞生,让我们不再关注具体 MQ 的细节,我们只需要用一种适配绑定的方式,自动的给我们在各种 MQ 内切换。(类似于 Hibernate)
2、是什么
屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。
官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架。
**应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中 binder 对象交互。通过我们配置来 binding(绑定),而 Spring Cloud Stream 的 binder 对象负责与消息中间件交互。**所以,我们只需要搞清楚如何与 Spring Cloud Stream 交互就可以方便使用消息驱动的方式。
通过使用 Spring Integration 来连接消息代理中间件以实现消息事件驱动。Spring Cloud Stream ...
Bus消息总线
Bus 消息总线1、SpringCloud Bus 介绍1-1、消息总线的由来回顾上一篇文章 Config 分布式配置中心存在的问题
假如有多个微服务客户端 3355/3366/3377……,每个微服务都要执行一次 post 请求,手动刷新?
可否广播,一次通知,处处生效?
我们想大范围的自动刷新,求方法
以上就是消息总线的产生由来
Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新
1-2、是什么
Spring Cloud Bus 是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了 Java 的事件处理机制和消息中间件的功能。
Spring Cloud Bus 目前支持 RabbitMQ 和 Kafka。
1-3、能干嘛Spring Cloud Bus 能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、事件推送等,也可以当作微服务间的通信通道。
1-4、总线什么是总线在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主 ...
Config分布式配置中心
Config 分布式配置中心1、Config 分布式配置中心介绍1-1、分布式系统面临的配置问题微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。
SpringCloud 提供了 ConfigServer 来解决这个问题,我们每一个微服务自己带着一个 application.yml,上百个配置文件的管理…/(ㄒ o ㄒ)/~~
1-2、是什么SpringCloud Config 为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。
1-3、怎么玩SpringCloud Config 分为 服务端 和 客户端 两部分。
服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口
客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器默认采用 git ...
Gateway网关
Gateway 网关1、Gateway 简介1-1、官网上一代 zuul 1.X:https://github.com/Netflix/zuul/wiki
当前 gateway:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/
1-2、是什么SpringCloud Gateway 是 SpringCloud 的一个全新项目,基于 Spring5.O+Springboot 2.0 和 ProjectReactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。
SpringCloudGateway 作为 SpringCloud 生态系统中的网关,目标是替代 Zuul,在 SpringCloud2.0 以上版本中,没有对新版本的 zuul2.0 以上最新高性能版本进行集成,仍然还是使用的 Zuul 1.x 非 Reactor 模式的老版本。而为了提升网关的性能,SpringCloud Gateway 是基于 Web ...
服务降级——Hystrix断路器
服务降级——Hystrix 断路器1、Hystrix 简述1-1、分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败
服务雪崩:多个微服务之间调用的时候,假设微服务 A 调用微服务 B 和微服务 C,微服务 B 和微服务 C 又调用其它的微服务,这就是所谓的“扇出”,如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务 A 的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。
对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和,比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加、备份队列、线程和其他系统资源紧张,导致整个系统发生更多的级联故障,这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不能取消整个应用程序或系统,所以,通常当你发现一个模块下的某个实例失败后,这时候这个模块依然还会接收流量,然后这个有问题的模块还调用了其他的模块,这样就会发生级联故障,或者叫雪崩。
1-2、Hystrix 是什么Hystrix 是一个用于处理分布式系统 ...