feign和ribbon区别

子凡 2019-09-02 09:37:04
问答

feign和ribbon是Spring Cloud的Netflix中提供的两个实现软负载均衡的组件,Ribbon和Feign都是用于调用其他服务的,方式不同。Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式。

feignribbonSpring CloudNetflix 中提供的两个实现软负载均衡的组件,Ribbon 和 Feign 都是用于调用其他服务的,方式不同。Feign 则是在 Ribbon 的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建 http 请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。

负载均衡 Load Balancing

1.启动类使用的注解不同,Ribbon 用的是@RibbonClient,Feign 用的是@EnableFeignClients。

2.服务的指定位置不同,Ribbon 是在@RibbonClient 注解上声明,Feign 则是在定义抽象方法的接口中使用@FeignClient 声明。

3.调用方式不同,Ribbon 需要自己构建 http 请求,模拟 http 请求然后使用 RestTemplate 发送给其他服务,步骤相当繁琐。

Feign

Feign 是在 Ribbon 的基础上进行了一次改进,是一个使用起来更加方便的 HTTP 客户端。采用接口的方式, 只需要创建一个接口,然后在上面添加注解即可 ,将需要调用的其他服务的方法定义成抽象方法即可, 不需要自己构建 http 请求。然后就像是调用自身工程的方法调用,而感觉不到是调用远程方法,使得编写 客户端变得非常容易。

Ribbon

Ribbon 是一个基于 HTTP 和 TCP 客户端 的负载均衡的工具。它可以 在客户端 配置 RibbonServerList(服务端列表),使用 HttpClient 或 RestTemplate 模拟 http 请求,步骤相当繁琐。

2个人收藏头像头像 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • Nginx Pingora

    Nginx和Pingora有哪些区别

    Nginx是一个高性能的HTTP和反向代理服务器,以事件驱动方式编写,具有低资源消耗、高并发连接等特点。而Pingora是一个Rust框架,用于构建快速、可靠和可编程的网络系统,提供异步Rust、HTTP代理、可定制负载均衡等功能,注重安全性和高度可编程性。两者在应用场景和特性上有所不同。
  • Cloudflare Pingora

    Pingora是什么

    Pingora 是 Cloudflare 使用 Rust 在内部构建的新 HTTP 代理,它每天处理超过 1 万亿个请求,提高了 Cloudflare 的性能,并为 Cloudflare 客户带来了许多新功能,同时只需要 Cloudflar
  • Nginx

    Nginx转发是什么

    Nginx转发是Nginx服务器作为反向代理,将客户端请求透明地转发到后端服务器处理的过程。它在负载均衡、高可用性、SSL加密等方面发挥着重要作用,具有高性能、稳定性、灵活性和开源免费等优势,是构建现代化Web系统的核心组件之一。
  • HAProxy

    HAProxy,强大的负载均衡和代理工具

    HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。 可以在多个服务器之间分配客户端请求,通过这种方式提高应用程序的高可用性、负载均衡和性能。HAProxy广泛应用于提供高可靠性和高性能的Web服务,尤其是在处理大量并发连接时表现出色。
  • Nginx

    Nginx,轻量级的高并发开源Web服务器软件

    Nginx是一款高性能的开源Web服务器软件,广泛应用于静态内容处理、反向代理和负载均衡等场景。以其高效的事件驱动架构、低资源消耗、灵活的配置能力和优秀的安全特性著称,Nginx能够支持极高的并发连接,适合各种规模的应用,从小型个人项目到大型企业级应用。
  • MariaDB

    MariaDB,完全兼容MySQL的关系数据库

    MariaDB作为一个开源的关系型数据库管理系统,以其高性能、强大的安全特性和完全兼容MySQL的特点而受到广泛欢迎。它提供了多种存储引擎选项、先进的查询优化器和丰富的安全功能,适合从小型项目到大型企业级应用。得益于活跃的社区支持和开源性质,MariaDB适合追求性能、可扩展性和安全性的开发者和企业使用。