Ribbon和Feign的区别及说明

 更新时间:2024年11月13日 09:05:56   作者:少年唐玄奘  
本文介绍了Spring Cloud Netflix中的两个负载均衡组件:Ribbon和Feign,Ribbon是一个基于HTTP和TCP客户端的负载均衡工具,使用起来较为繁琐,而Feign是一个使用接口方式的HTTP客户端,采用类似MyBatis的@Mapper注解方式,使得编写客户端变得非常容易

Ribbon 和 Feign 的区别

spring cloud的 Netflix 中提供了两个组件实现软负载均衡调用:ribbon 和 feign 。

Ribbon

是一个基于 HTTP 和 TCP 客户端 的负载均衡的工具。

它可以 在客户端 配置 RibbonServerList(服务端列表),使用 HttpClient 或 RestTemplate 模拟http请求,步骤相当繁琐。

服务间的调用,需要开启负载均衡,需要开启熔断机制

Feign

Feign 是在 Ribbon的基础上进行了一次改进,是一个使用起来更加方便的 HTTP 客户端。

采用接口的方式, 只需要创建一个接口,然后在上面添加注解即可 ,将需要调用的其他服务的方法定义成抽象方法即可, 不需要自己构建http请求。

然后就像是调用自身工程的方法调用,而感觉不到是调用远程方法,使得编写 客户端变得非常容易。

类似于 mybatis 的 @Mapper注解 。

注意:spring-cloud-starter-feign 里面已经包含了 spring-cloud-starter-ribbon(Feign 中也使用了 Ribbon)

可以说是ribbon的升级版,自带负载均衡,自带熔断机制

  1. config:配置熔断监控仪表盘
  2. controller:服务消费controller,调用service方法
  3. hystrix:熔断回调方法
  4. service:@FeignClient,指定服务提供者,指定回调方法(重点)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java设计模式——工厂设计模式详解

    Java设计模式——工厂设计模式详解

    这篇文章主要介绍了Java设计模式——工厂设计模式详解,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java数据结构实现二维数组与稀疏数组转换详解

    Java数据结构实现二维数组与稀疏数组转换详解

    稀疏数组是用于优化,压缩具有以下特点的二维数组:当二维数组中的元素大部分相同,有意义的数据元素较少时,可以使用稀疏数组进行简化,节省存储空间
    2021-10-10
  • Java中BigDecimal类的add()的使用详解

    Java中BigDecimal类的add()的使用详解

    这篇文章主要介绍了Java中BigDecimal类的add()的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • java实现线程阻塞式方法

    java实现线程阻塞式方法

    Java阻塞式方法会使线程暂停执行,不占用CPU资源直至条件满足,常见阻塞方法如Thread.sleep()、Object.wait()和I/O操作,具有一定的参考价值,感兴趣的可以了解一下
    2024-10-10
  • spring实现bean对象创建代码详解

    spring实现bean对象创建代码详解

    这篇文章主要介绍了spring实现bean对象创建代码详解,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Spring AOP实现原理解析

    Spring AOP实现原理解析

    这篇文章主要为大家详细介绍了Spring AOP的实现原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Java静态static关键字原理详解

    Java静态static关键字原理详解

    这篇文章主要介绍了Java静态static关键字原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java数据结构之加权无向图的设计实现

    Java数据结构之加权无向图的设计实现

    加权无向图是一种为每条边关联一个权重值或是成本的图模型。这种图能够自然地表示许多应用。这篇文章主要介绍了加权无向图的设计与实现,感兴趣的可以了解一下
    2022-11-11
  • Springboot整合freemarker和相应的语法详解

    Springboot整合freemarker和相应的语法详解

    FreeMarker是一款Spring官方推荐使用的模板引擎。接下来通过本文给大家介绍Springboot整合freemarker和相应的语法,感兴趣的朋友一起看看吧
    2021-09-09
  • spring cloud config和bus组件实现自动刷新功能

    spring cloud config和bus组件实现自动刷新功能

    今天通过本文给大家介绍spring cloud config和bus组件实现自动刷新功能,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-10-10

最新评论