IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringCloud(三) - Feign和Hystrix -> 正文阅读

[Java知识库]SpringCloud(三) - Feign和Hystrix

Feign

feign是一个声明式的webService客户端,使用feign可以让编写WebService客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解,Feign也支持可插拔式的编码器和解码器,Spring Cloud对Feign进行了封装,使其支持了Spring MVC注解和HttpMessageConverters。Feign可以与Eureka和Feign组合使用以支持负载均衡。这样设计是为了支持面向接口编程,类似于Mybatis的Mapper。

Feign的使用

  1. 导入依赖
  2. 开启Feign支持
  3. 新建接口,接口上注解@FeignClient(value=“服务名字”)
  4. 注入feign接口

为什么要使用Feign

之前使用Ribbon + RestTemplate时,使用RestTemplate对http请求封装处理,形成了一套模板化的调用方法,但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多次调用,所以通常针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用,所以feign在此基础上做了进一步封装,由他来帮助我们定义和实现依赖服务接口的定义,在feign的实现下,我们只需要创建一个接口并使用注解方式来配置它,即可完成对服务提供方的接口绑定,简化了使用Spring Cloud Ribbon时自动封装微服务调用客户端的开发量。

feign集成了Ribbon,利用Ribbon维护了服务列表信息,并通过轮询的方式实现了客户端的负载均衡,

feign的两大注解:

  1. @FeignClient(“服务名”) 配置服务接口,接口上配置@RequestMapping映射对应的url
  2. @EnableFeignClients 开启对feign的支持

Hystrix

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免地会调用失败,比如超时,异常等,Hystrix能保证在一个依赖出现问题时,不会导致整体服务失败,避免了级联故障,以提高分布式系统的弹性,比如向调用方返回一个符合预期的,可处理的备选响应(Fallback),而不是长时间地等待或抛出调用方无法处理的异常。

服务雪崩

服务雪崩是多个微服务之间调用时,假设微服务A调用B,C,B和C又调用其他微服务,这就是所谓的扇出,如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对A的调用就会占用越来越多的系统资源进而引起系统崩溃。

服务熔断和服务降级

应对雪崩效应的一种链路保护机制

  1. @HystrixCommand(fallback = “对应的处理方法”) 标记一个接口处理方法
  2. @EnableCircuitBreaker 开启Hystrix的支持

整体资源不够用了,就挂掉部分服务,待资源足够,再开启回来,这个操作是在客户端完成的

将熔断操作和业务操作解耦

  1. 新建一个处理工厂类,实现FallbackFactory<业务接口.class>接口,注意这个类上添加@component。
  2. 在FeignClient注解上添加fallBackFactory属性
  3. 配置application.yml
feign:
	hystrix:
		enabled: true

hystrixDashboard

准实时地调用监控,会持续记录所有通过Hystrix发起的请求执行信息,并以统计报表和图形的形式展示给用户

  1. @EnableHystrixDashboard开启监控支持
  2. 访问http://localhost:9001/hystrix.stream,将需要的信息复制到http://localhost:9001/hystrix
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 11:44:09  更:2021-08-27 11:45:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:41:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码