Feign超时在yml文件里的配置方式

目录

Feign超时 yml文件配置

Feign用法和基本配置

首先说下我的模块结构

首先在test1模块下新建pojo模块

首先在consumer的模块下新建feign调用类

接下来新建provider模块

Feign超时 yml文件配置 ribbon: # #指建立连接后从服务端读取到可用资源所用的时间 ReadTimeOut: 10000 #建立连接所用的时间,适用于网络状况正常的情况下,两端连接所需要的时间 ConnectTimeout: 5000 Feign用法和基本配置

SpringBoot集成Feign在不使用注册中心实现模块之间的调用

​ 今天就来说下怎么使用Fegin在不使用注册中心的情况下进行模块之间的调用。原因是:在项目小的情况下,而且还必须要调用其他模块的接口,那么这个时候就要用fegin了,当然还有其他的方法,但我在这里只说这一种简单的方法。

上代码:

首先说下我的模块结构

test1是根模块用于对子模块maven坐标的版本控制管理其pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.person</groupId> <artifactId>test1</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>provider</module> <module>consumer</module> <module>pojo</module> </modules> <!--spring boot 环境 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <!--spring cloud 版本--> <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version> </properties> <!--引入Spring Cloud 依赖--> <dependencyManagement> <dependencies> <dependency> <groupId>com.person</groupId> <artifactId>pojo</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!--spring boot web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.1.RELEASE</version> </dependency> <!--feign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>2.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> </project>

紧接着在test1模块下新建两个模块分别为consumer,provider和pojo,其中consumer使用Feign调用provider模块的接口,pojo模块放实体类

首先在test1模块下新建pojo模块

pojo模块的pom.xml:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>test1</artifactId> <groupId>com.person</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>pojo</artifactId> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> </project>

在pojo模块下新建Goods实体类供其他模块使用:

package com.person.pojo.consumer; import lombok.*; import javax.validation.constraints.NotNull; import java.io.Serializable; @Setter @Getter @AllArgsConstructor @NoArgsConstructor @Builder(toBuilder = true) public class Goods implements Serializable { private static final long serialVersionUID = 1L; @NotNull(message = "id不能为空") private String id; private String name; private String price; private String colour; }

consumer的yml文件:

server: port: 8012

consumer的pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>test1</artifactId> <groupId>com.person</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>consumer</artifactId> <dependencies> <dependency> <groupId>com.person</groupId> <artifactId>pojo</artifactId> </dependency> <!--feign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!--spring boot web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project> 首先在consumer的模块下新建feign调用类 package com.person.feign; import com.person.pojo.consumer.Goods; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @FeignClient(name = "provider",url = "http://localhost:8011") @RequestMapping("/person") public interface GoodsFeignClient { @GetMapping("/findone/{id}") public Goods findOnebyId(@PathVariable("id") String id); }

上面代码所示 url代表想要调用的模块的前缀因为我的provider模块的端口是8011因此http://localhost:8011就是我的provider前缀,下面的请求路径“/person/findone/{id}”指的是我的provider模块接口路径

下面在consumer模块下新建controller方法:

package com.person.controller; import com.person.feign.GoodsFeignClient; import com.person.pojo.consumer.Goods; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/order") public class OrderController { @Autowired private GoodsFeignClient goodsFeignClient; @GetMapping("/findone/{id}") public Goods findOnebyId(@PathVariable("id") String id) { return goodsFeignClient.findOnebyId(id); } } 接下来新建provider模块

provider的yml文件:

server: port: 8011

其pom.xml坐标:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>test1</artifactId> <groupId>com.person</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>provider</artifactId> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.person</groupId> <artifactId>pojo</artifactId> </dependency> <!--spring boot web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>

然后在provider 中新建controller:

package com.person.controller; import com.person.pojo.consumer.Goods; import com.person.service.GoodsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * 服务提供方 */ @RestController @RequestMapping("/person") public class GoodsController { @GetMapping("/findone/{id}") public Goods findOne(@PathVariable("id") String id) { return new Goods("1","红苹果","8888","红色"); } }

这个时候在浏览器里面输入http://localhost:8012/order/findone/12回车

显示的是provider的接口返回的数据,说明feign调用成功。关于feign还有很多很多牛x的用法,若有需要可以在官网或者其他地方搜索,我展示的只是适合新手入门上手。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易知道(ezd.cc)。

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    酷睿I7 配置

    酷睿I7 配置,配置,玩家国度啦华硕 Rampage II Extreme(3800元)如果米不够,也可以把Extreme改为Gene,不过是小板内存推荐金士顿6G DDR3 2000骇

    鼠标不能拖动文件了

    鼠标不能拖动文件了,鼠标,拖动,本文目录鼠标不能拖动文件了电脑鼠标无法拖动软件图标了,怎么办鼠标不能滚动怎么调整电脑鼠标不能进行任何

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    苹果电脑如何连接和使用扫描仪

    苹果电脑如何连接和使用扫描仪,,扫描仪的使用 用苹果扫描图像。 连接扫描仪:在打开苹果电脑之前,你需要连接扫描仪和安装扫描仪驱动程序。扫

    opporeno8参数配置及价格

    opporeno8参数配置及价格,面部,亿元,Oppo的荣誉2020年1月4日,接近屏幕关闭传感器是否支持双卡:支持oppor11splus什么时候上市的Oppo R11S P

    查看配置:酷睿i3530集展示办公平台

    查看配置:酷睿i3530集展示办公平台,,由于时间和精力的关系,我们不可能对所有的配置进行评论,希望我们能理解,我希望我们的评论能在那些需要帮

    3500元超额值学生娱乐结构的优化配置

    3500元超额值学生娱乐结构的优化配置,,作为一个DIY的主流用户领域的学生,每个用户51学生攒机的高峰。因为学生用户没有稳定的收入来源,攒机