Feign

Feign简介


使用Feign实现消费者客户端


使用Feign+Ribbon实现客户端负载均衡

底层的负载均衡策略还是使用Ribbon通过Feign进行调用


Feign的相关配置

ribbon.eager-load.enabled=true

开启饥饿加载,默认是懒加载此项为false关闭状态,在调用的时候才开始获取服务列表进行负载均衡策略,所以第一次调用会比较缓慢,后面再次调用的速度会有大幅度提升。若设置为true打开状态,则从项目启动的时候就开始获取服务列表并且进行负载均衡策略,所以第一次调用并不会出现迟缓现象。

ribbon.eager-load.clients=xxxxxxxxxx

为哪些客户端开启饥饿加载,多个客户端使用逗号隔开(非必须),xxxxxxxx为客户端的服务名称。不配置的话如果配置了开启饥饿加载,则所有的客户端都开启

feign.client.config.default.read-timeout=2

设置feign读取时间为2 单位为毫秒,设置过小会出现读取超时现象

feign.client.config.default.connect-timeout=2

配置feign连接时间为2单位为毫秒,超过实现就不再连接

feign.client.config.default.logger-level=full

设置feign的日志记录等级

tips:default代表使用于所有服务

feign.client.config.[name].read-timeout=5

feign.client.config.[name].connect-timeout=5

配置具体服务的连接和读取时限,name为对应的服务名称

feign.httpclient.enabled=true

默认值也为true,代表是否使用默认的底层为Apache Http的客户端使用Feign

feign.httpclient.max-connections=200

指定客户端最大连接数

feign.httpclient.max-connections-per-route=50

指定每个路由路径的最大连接数

tips:feign的老版本底层采用的JDK的httpURLconnection发起远程调用,效率不如restTemplate,新版本效率差不多


脱离Ribbon的Feign远程调用

无负载均衡功能,只能使用远程调用

需要在@FeignClient注解中配置url属性,需要将连接地址写死。并且在接口中的方法上@GetMapping后面也不需要加路径,这样方法会自动调用url中的路径。


Feign的声明代码统一封装

实际开发时,会将有关于Feign的声明代码统一放入一个项目模块xxxxx-common中管理。实现代码复用,减少冗余。common模块中也需要引入相应的jar包依赖。

Spring Cloud Alibaba - Feign的更多相关文章

  1. Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)

    通过<Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现>一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBal ...

  2. Spring Cloud Alibaba Sentinel 整合 Feign 的设计实现

    作者 | Spring Cloud Alibaba 高级开发工程师洛夜 来自公众号阿里巴巴中间件投稿 前段时间 Hystrix 宣布不再维护之后(Hystrix 停止开发...Spring Cloud ...

  3. Spring Cloud Alibaba Sentinel对Feign的支持

    Spring Cloud Alibaba Sentinel 除了对 RestTemplate 做了支持,同样对于 Feign 也做了支持,如果我们要从 Hystrix 切换到 Sentinel 是非常 ...

  4. 0.9.0.RELEASE版本的spring cloud alibaba sentinel+feign降级处理实例

    既然用到了feign,那么主要是针对服务消费方的降级处理.我们基于0.9.0.RELEASE版本的spring cloud alibaba nacos+feign实例添油加醋,把sentinel功能加 ...

  5. 0.9.0.RELEASE版本的spring cloud alibaba nacos+feign实例

    这里的feign依然是原来的feign,只不过将注册中心由eureka换成了nacos.服务提供方参见0.9.0.RELEASE版本的spring cloud alibaba nacos实例,消费方跟 ...

  6. Spring Cloud & Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)

    目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashboar ...

  7. Spring Cloud Alibaba(8)---Feign服务调用

    Feign服务调用 有关Spring Cloud Alibaba之前写过五篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring Clo ...

  8. Spring Cloud Alibaba学习笔记(4) - Feign配置与使用

    什么是Feign Feign是一个声明式Web Service客户端. 使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX- ...

  9. Spring Cloud Alibaba 新版本发布:众多期待内容整合打包加入!

    在Nacos 1.0.0 Release之后,Spring Cloud Alibaba也终于发布了最新的版本.该版本距离上一次发布,过去了整整4个月!下面就随我一起看看,这个大家期待已久的版本都有哪些 ...

随机推荐

  1. SpringCloud微服务(基于Eureka+Feign+Hystrix+Zuul)

    一.搭建注册中心 1.1.创建一个cloud-service项目 1.2:POM文件依赖 1 <?xml version="1.0" encoding="UTF-8 ...

  2. layui 列合并相同内容

    table.render({ elem: '#tbdata', method: 'post', data: jsonData, height: temphei, limit: 20, limits: ...

  3. Linux:Ka li 2020.4 安装教程

    下载地址 Ka li官网 :https://www.kali.org install 版本是安装版,安装后使用: Live    版本可以直接启动运行: netinstaller  版本是网络安装版, ...

  4. Spring:Spring优势——分层架构简介

    Spring框架采用分层架构,根据不同的功能被划分成了多个模块,这些模块大体可分为 Data Access/Integration.Web.AOP.Aspects.Messaging.Instrume ...

  5. com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)

    RabbitMQ 基于Erlang 实现, 客户端可以用Python | Java | Ruby | PHP | C# | Javascript | Go等语言来实现.这里做个java语言的测试.首先 ...

  6. swoole实现任务定时自动化调度详解

    开发环境 环境:lnmp下进行试验 问题描述 这几天做银行对帐接口时,踩了一个坑,具体需求大致描述一下. 银行每天凌晨后,会开始准备昨天的交易流水数据,需要我们这边请求拿到. 因为他们给的是一个bas ...

  7. 关于scrollview的无限滚动效果实现

    起因及需求:做过阅读器的朋友应该知道,一般的阅读器都会有仿真.平移等特效.最近赶上真空期,项目不忙,有点时间,于是想抓起来,总结点干货. 仿真翻页及平滑翻页的基本实现: 仿真翻页,使用系统自带的UIP ...

  8. Log4cpp配置文件及动态调整日志级别的方法

    一.log4cpp概述 Log4cpp是一个开源的C++类库,它提供了C++程序中使用日志和跟踪调试的功能,它的优点如下: 提供应用程序运行上下文,方便跟踪调试: 可扩展的.多种方式记录日志,包括命令 ...

  9. Python基础4--数据类型

    一.数据类型是什么鬼? 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...

  10. SpringBoot 整合 MybatisPlus 3.0

      CRUD是指在做计算处理时的增加(Create).读取查询(Retrieve).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中DataBase或者持久层的 ...