![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringCloud
张金龙.
这个作者很懒,什么都没留下…
展开
-
什么是熔断?
概念:熔断 是对微服务雪崩效应的一种链路保护机制 当扇出链路的某个微服务出错或者不可用亦或者是响应时间过慢 就会开启服务的降级操作 进而熔断该服务节点的一个调用 然后返回错误的响应信息 通俗一些来说 比如有A/B/C/D/E 这五个微服务 当其中某一个微服务出现了一些问题 导致了其他几个服务不可用(这个就是扇出效应) 这个时候就会造成雪崩 整个服务直接垮掉 而熔断服务就是应对这种雪崩效应的一种链路保护机制 这个时候就会对出现问题的服务进行熔断 让他暂时性的不可用 从而不影响其他的服务 避免了服务雪崩的状态.原创 2021-07-20 15:38:14 · 1366 阅读 · 1 评论 -
Hystrix工作原理
流程架构图:理论总结: 1.构建一个HystrixCommand或者HystrixObservableCommand对象,将请求包装到Command对象中。2.执行命令。具体类在HystrixCommand.java 具体的包 package com.netflix.hystrix;所执行的方法 execute(); queue(); 另一个接口 HystrixObservable 所在包:package com.netflix.hystrix; 所执行的方法 observe();toOb.原创 2021-07-18 22:40:47 · 166 阅读 · 1 评论 -
手撕轮询算法
在Ribbon负载均衡中 他默认的负载均衡为轮询 下面就来手撕一个轮询算法 第一步 先定义好接口public interface LoadBalancer { /** * 负载均衡算法规则公式: rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标 * 每次服务重启后rest接口计数从1开始 */ public ServiceInstance instaces(List<ServiceInstance> serviceI原创 2021-07-12 16:02:04 · 194 阅读 · 0 评论 -
getForObject与getForEntity的区别
getForObject:返回响应体中数据转化成的对象,可以理解为jsongetForEntity:返回的是ResponseEntity的对象包含了一些重要的信息 例如以下代码ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PAYMENT_URL + "/payment/get/" + id, CommonResult.class); //与getForObject的区别 是可以打印以下信原创 2021-07-11 22:27:16 · 5552 阅读 · 2 评论 -
SpringCloud整合zookeeper
1.导入依赖 注意:他自带的版本为3.5.3 可能引起jar包冲突而报异常 所以这里先排除一下他自带的版本 再引入不冲突的版本例如 3.4.9<!-- SpringBoot整合zookeeper客户端 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sta原创 2021-07-10 02:22:17 · 237 阅读 · 0 评论 -
Eureka自我保护机制
为什么会产生Eureka自我保护机制?为了防止EukekaClient可以正常运行,但是与EurekaServer网络不通的情况下,EurekaServer不会立刻将EurekaClient服务删除如何理解自我保护机制?默认的情况下 如果Eureka在特定的时间内(默认为90s)没有接收到某个微服务实例的心跳,EurekaServer将会注销掉这个实例 但是当网络分区发生故障时发生卡顿等现象时 微服务与EurekaServer之间无法正常通信 以上行为可能变得非常危险了 因为微服务本身是可用原创 2021-07-07 23:23:19 · 94 阅读 · 0 评论 -
SpringCloud中服务发现Discovery基础使用
1.由于Discovery是SpringCloud中Eureka的组件所以在使用之前需要配置相关依赖 cloud版本为:Hoxton.SR1 并且在该工程下的SpringBoot主启动类中加入@EnableDiscoveryClien注解 yml文件中也需要配置instance 代码如下 <dependency> <groupId>org.springframework.cloud</groupId> &原创 2021-07-07 23:07:53 · 3410 阅读 · 0 评论