摘要: 分布式系统面临的配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。 SpringCloud提供了ConfigServer来解决这个问题,我们每一 阅读全文
posted @ 2021-11-15 13:32 Primary丶 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 1. 添加依赖 <!--gateway--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 2 阅读全文
posted @ 2021-11-14 21:34 Primary丶 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 概述 Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关; 但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway—句话:gateway是原zuul1.x版的替代 Gateway是 阅读全文
posted @ 2021-11-14 15:17 Primary丶 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 断路器,相当于保险丝。 熔断机制概述 熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。 在Spring Cloud框架里,熔断机 阅读全文
posted @ 2021-11-11 16:43 Primary丶 阅读(1050) 评论(0) 推荐(0) 编辑
摘要: 1.添加Hystrix的依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> 为 阅读全文
posted @ 2021-11-11 10:49 Primary丶 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 概述 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不 阅读全文
posted @ 2021-11-10 14:23 Primary丶 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 如果消费者请求提供着接口时响应时间超过了1s,将会跳出错误Spring Boot默认错误页面,主要异常:feign.RetryableException:Read timed out executing GET http://CLOUD-PAYMENT-SERVCE/payment/feign/ti 阅读全文
posted @ 2021-11-10 13:37 Primary丶 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 1.在主启动类上添加@EnableFeignClients注解 2.配置服务层接口,在接口上添加@FeignClient(value = "服务注册中心的名字") 在这里名添加的接口需要和提供者的接口路径保持一致 @Component @FeignClient(value = "CLOUD-PAYM 阅读全文
posted @ 2021-11-10 10:28 Primary丶 阅读(241) 评论(0) 推荐(0) 编辑
摘要: (源码)github地址 官方定义: Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了S 阅读全文
posted @ 2021-11-10 08:58 Primary丶 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 默认负载轮训算法: rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标,每次服务重启动后rest接口计数从1开始。 List instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE"); 如: List 阅读全文
posted @ 2021-11-09 12:36 Primary丶 阅读(68) 评论(0) 推荐(0) 编辑