![](https://img-blog.csdnimg.cn/2020021910553256.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringCloud
文章平均质量分 74
SpringCloud
吴声子夜歌
个人学习记录
展开
-
SpringCloud--Sleuth链路监控
修改cloud-provider-payment8001模块添加依赖: <!--包含了sleuth+zipkin--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>...原创 2020-03-20 21:12:53 · 279 阅读 · 0 评论 -
SpringCloud--Sleuth概述、zipkin环境搭建
概述在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin。官网:https://spring.io/pr...原创 2020-03-20 20:31:31 · 493 阅读 · 0 评论 -
SpringCloud Stream--简单案例、分组消费与持久化
案例说明cloud-stream-rabbitmq-provider8801:作为生产者进行发消息模块cloud-stream-rabbitmq-provider8802:作为消费者接收消息模块cloud-stream-rabbitmq-provider8803:作为消费者接收消息模块生产者引入依赖:<?xml version="1.0" encoding="UTF-8"?&...原创 2020-03-20 19:17:13 · 638 阅读 · 0 评论 -
SpringCloud Stream--编码API和常用注解
标准流程套路Binder:方便连接中间件,屏蔽差异Channel:通道,是队列Queue的一种抽象,在消息通讯系统中就是实现存储和转发的媒介,通过Channel对队列进行配置Source、Sink:简单的可理解为参照对象是SpringCloud Stream自身,从Stream发布消息就是输出,接受消息就是输入。编码API和常用注解组成说明Middleware...原创 2020-03-20 11:54:49 · 939 阅读 · 0 评论 -
SpringCloud--Stream概述、Binder概述
Spring Cloud StreamSpring Cloud Stream是一个构建消息驱动微服务框架。应用程序通过inputs或者outputs来与SpringCloudStream中binder对象交互。通过配置来binding(绑定),而Spring Cloud Stream的binder对象负责与消息中间件交互。所以只需要搞清楚如何与Spring Cloud Stream交互就可以方...原创 2020-03-20 11:41:39 · 1856 阅读 · 0 评论 -
SpringCloudBus--动态刷新全局广播、动态刷新定点通知
动态刷新全局广播设计思想:利用消息总线触发一个客户端/bus/refresh,而刷新所有客户端的配置利用消息总线触发一个服务端ConfigServer的/bus/refresh端点,而刷新所有客户端的配置方式二更加合适,方式一不合适的原因如下:打破了微服务的职责单一性,因为微服务本身是业务模块,它本不该承担配置刷新的职责。破坏了微服务各个节点的对等性。有一定的局限性。例如,...原创 2020-03-20 00:23:09 · 812 阅读 · 1 评论 -
SpringCloud--Bus概述
什么是总线在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都链接上来。由于该主题中产生的消息都会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。基本原理:ConfigClient实例都监听MQ中同一个topic(默认是SpringCloudBus)。当一个服务刷新数...原创 2020-03-19 23:17:38 · 521 阅读 · 0 评论 -
SpringCloud(Hoxton) Config--客户端配置与测试、客户端动态刷新
SpringCloud Config客户端配置服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理...原创 2020-03-19 22:50:17 · 435 阅读 · 0 评论 -
SpringCloud(Hoxton) Config--服务端配置与测试、配置文件读取规则
SpringCloud Config服务端配置在GitHub新建一个名为springcloud-config的新Repository。本地初始化一个仓库,将Repository克隆下来git clone https://github.com/xxxx/springcloud-config.git准备3个配置文件,并push到github:新建config配置中心微服务cloud-co...原创 2020-03-19 20:00:11 · 484 阅读 · 0 评论 -
Gateway--Filter、自定义全局过滤器
GatewaFilter Factories路由过滤器可用于修改进入的HTTP请求和返回的HTTP响应,路由过滤只能指定路由进行使用。SpringCloud Gateway 内置了多种路由过滤器,他们都由GatewayFilter的工厂类来产生。生命周期:pre(前置)post(后置)种类:GatewayFilterGlobalFilter自定义全局过滤器需要实现...原创 2020-03-19 13:22:50 · 1114 阅读 · 0 评论 -
Gateway--Route Predicate Factories
oute Predicate FactoriesSpringCloud Gateway将路由匹配作为Spring WebFlux HandlerMapping基础架构的一部分。Spring Cloud Gateway包括许多内置的Route Predicate工厂。所有这些Predicate都与HTTP请求的不同属性匹配。多个RoutePredicate工厂可以进行组合。SpringClo...原创 2020-03-19 01:01:10 · 365 阅读 · 0 评论 -
SpringCloud(Hoxton)--配置Gateway网关、动态路由
cloud-gateway-gateway9527网关微服务依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2020-03-18 23:43:04 · 1163 阅读 · 0 评论 -
Gateway--核心概念、工作流程
核心概念Route(路由):路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由Predicate(断言):参考的是Java8的java.util.function.Predicate,开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由Filter(过滤):指的是Spring框架中Gat...原创 2020-03-18 22:01:44 · 1165 阅读 · 0 评论 -
Gateway--概述
GatewayCloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用Zuul网关。但是在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关代替Zuul,就是SpringCloud Gateway,gateway就是原zuul1.x版的替代。Gateway是在Spring生态之上构建的API网关服务,基于Spring5,SpringBoot 2和Pr...原创 2020-03-18 20:16:59 · 5001 阅读 · 0 评论 -
SpringCloud(Hoxton)--Hystrix服务熔断
Hystrix服务熔断熔断类型:熔断打开:请求不再进行调用当前服务,内部设置时钟一般为MTTR(平均故障处理时间),当打开时长达到所设时钟则进入半熔断状态熔断关闭:软缎关闭不会对服务进行熔断熔断半开:部分请求根据规则调用当前服务,如果请求成功且符合规则认为当前服务恢复正常,关闭熔断涉及到断路器的三个重要参数:快照时间窗: 断路器确定是否打开需要统计一些请求和错误数据,而统计...原创 2020-03-18 11:43:02 · 545 阅读 · 0 评论 -
SpringCloud(Hoxton)--Hystrix服务降级(注解)
cloud-provider-hystrix-payment8001模拟支付模块依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins...原创 2020-03-17 22:15:24 · 550 阅读 · 0 评论 -
SpringCloud--OpenFeign服务调用、超时控制、日志打印
cloud-consumer-feign-order80模拟调用模块依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...原创 2020-03-17 19:17:44 · 2066 阅读 · 2 评论 -
OpenFeign--概述
OpenFeignFeign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。 Feign也支持可拔插式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持了SpringMVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组...原创 2020-03-17 18:41:04 · 939 阅读 · 0 评论 -
Eureka、Consul、Zookeeper三个注册中心的异同点
Eureka、Consul、Zookeeper三个注册中心的异同点CAP:C:Consistency(强一致性)A:Availability(可用性)P:Partition tolerance(分区容错)CAP理论关注粒度是数据,而不是整体系统设计的策略最多只能同时较好的满足两个。CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个要求,因此...原创 2020-03-17 12:24:16 · 658 阅读 · 0 评论 -
SpringCloud(Hoxton)--Consul服务注册与发现
cloud-providerconsul-payment8006模拟支付模块依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta...原创 2020-03-17 11:54:34 · 384 阅读 · 0 评论 -
Consul--概述、安装
ConsulConsul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。包括:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议;支持跨数据...原创 2020-03-17 10:46:00 · 193 阅读 · 0 评论 -
SpringCloud(Hoxton)--使用zookeeper作为注册中心
cloud-provider-payment8004模拟支付模块依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2020-03-16 23:58:39 · 229 阅读 · 0 评论 -
SpringCloud Config配置实例
SpringCloud Config配置实例Git配置文件本地配置在本地D:\44\mySpringCloud\microservicecloud-config路径下新建文件microservicecloud-config-eureka-client.ymlmicroservicecloud-config-eureka-client.yml内容:spring: profiles: ...原创 2020-02-22 23:35:29 · 265 阅读 · 0 评论 -
SpringCloud Config--客户端配置
SpringCloud Config客户端配置与测试在本地D:\44\mySpringCloud\microservicecloud-config路径下新建文件microservicecloud-config-eureka-client.ymlspring: profiles: active: - dev---server: port: 8201sprin...原创 2020-02-22 22:11:51 · 651 阅读 · 0 评论 -
SpringCloud Config服务端配置、配置读取规则
SpringCloud Config服务端配置用自己的GitHub账号在GitHub上新建一个名为microservicecloud-config的新Repository:获取Repository的http链接本地硬盘目录上新建git仓库并clone:在本地D:\44\mySpringCloud\microservicecloud-config里面新建一个application.yml...原创 2020-02-22 21:14:18 · 1602 阅读 · 0 评论 -
SpringCloud Config--概述
SpringCloud Config概述分布式系统面临的—配置问题:微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml,上百...原创 2020-02-22 20:57:35 · 440 阅读 · 0 评论 -
zuul路由网关--概述、基本配置、路由规则
zuul路由网关Zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获...原创 2020-02-22 15:27:59 · 741 阅读 · 0 评论 -
服务监控hystrixDashboard
服务监控hystrixDashboardHystrix还提供了实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求,多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Spring Cloud也提...原创 2020-02-22 13:56:29 · 297 阅读 · 0 评论 -
Hystrix--服务降级
服务降级整体资源快不够了,忍痛将某些服务先关掉,待渡过难关,再开启回来。修改microservicecloud-api工程,根据已经有的DeptClientService接口新建一个实现了FallbackFactory接口的类DeptClientServiceFallbackFactory@Componentpublic class DeptClientServiceFallbackF...原创 2020-02-22 10:47:29 · 232 阅读 · 0 评论 -
Hystrix--服务熔断
Hystrix服务熔断熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败就会...原创 2020-02-22 10:40:07 · 262 阅读 · 0 评论 -
Hystrix断路器--概述
Hystrix概述分布式系统面临的问题:复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩:多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的...原创 2020-02-22 10:32:50 · 220 阅读 · 0 评论 -
Feign--概述、初步使用
Feign概述Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与...原创 2020-02-21 23:46:07 · 263 阅读 · 0 评论 -
Ribbon--负载均衡、IRule、自定义Ribbon
Ribbon负载均衡Ribbon在工作时分成两步:第一步先选择EurekaServer,它优先选择在同一个区域内负载较少的server。第二部再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。其中Ribbon提供了多种策略:比如轮询,随机和根据相应时间加权。参考microservicecloud-provider-dept-8001,新建两份,分别命名为800...原创 2020-02-21 21:56:28 · 1451 阅读 · 0 评论 -
Ribbon--初步配置
修改microservicecloud-consumer-dept-80工程:添加依赖:<!-- Ribbon相关 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spri...原创 2020-02-21 19:20:01 · 362 阅读 · 0 评论 -
Ribbon--概述
Ribbon概述Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称L...原创 2020-02-21 14:48:46 · 1212 阅读 · 0 评论 -
Eureka与Zookeeper对比
Eureka的优点著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P是分布式系统中必须保证的,因此我们只能在A和C中间进行权衡。Zookeeper保证的是CP(一致性和分区容错性)Eureka保证的是AP(可用性和分区容错性)Zookeeper保证CP:当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注...原创 2020-02-20 21:42:35 · 392 阅读 · 1 评论 -
Eureka--服务注册、集群配置
服务注册创建microservicecloud-eureka-7001子模块:引入依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i...原创 2020-02-20 21:29:07 · 328 阅读 · 0 评论 -
Eureka--概述、框架
Eureka概述Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper。Netflix在设计Eur...原创 2020-02-20 13:45:46 · 442 阅读 · 0 评论 -
SpringCloud--微服务架构简单案例
构建父工程(microservicecloud)引入依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2020-02-20 12:44:24 · 446 阅读 · 0 评论 -
SpringCloud--概述
SpringCloudSpringCloud = 分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。SpringBoot和SpringCloud的关系:SpringBoot专注于快速方便的开发单个个体微服务。SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配...原创 2020-02-19 14:12:31 · 391 阅读 · 0 评论