Feign超时|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如下:
4.0.0 com.person test1【Feign超时|Feign超时 在yml文件里的配置方式】pom1.0-SNAPSHOT provider consumer pojo org.springframework.boot spring-boot-starter-parent2.1.0.RELEASE UTF-8UTF-8 1.8 Greenwich.RELEASEcom.person pojo1.0-SNAPSHOT org.springframework.cloud spring-cloud-dependencies${spring-cloud.version} pom importorg.springframework.boot spring-boot-starter-web2.1.1.RELEASE org.springframework.cloud spring-cloud-starter-openfeign2.1.1.RELEASE org.projectlombok lombok1.18.10 provided
紧接着在test1模块下新建两个模块分别为consumer,provider和pojo,其中consumer使用Feign调用provider模块的接口,pojo模块放实体类
首先在test1模块下新建pojo模块
pojo模块的pom.xml:
test1com.person 1.0-SNAPSHOT 4.0.0 pojoorg.projectlombok lombok
在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如下:
test1com.person 1.0-SNAPSHOT 4.0.0 consumercom.person pojoorg.springframework.cloud spring-cloud-starter-openfeignorg.springframework.boot spring-boot-starter-web
首先在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 {@Autowiredprivate GoodsFeignClient goodsFeignClient; @GetMapping("/findone/{id}")public Goods findOnebyId(@PathVariable("id") String id) {return goodsFeignClient.findOnebyId(id); }}
接下来新建provider模块
provider的yml文件:
server:port: 8011
其pom.xml坐标:
test1com.person 1.0-SNAPSHOT 4.0.0 providerorg.projectlombok lombokcom.person pojoorg.springframework.boot spring-boot-starter-web
然后在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的用法,若有需要可以在官网或者其他地方搜索,我展示的只是适合新手入门上手。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 在游戏开发中运用测试
- 软件测试|详解软件测试中白盒测试基本概念及四种白盒测试方法
- 软件测试|软件测试基础|软件测试基本概念|软件测试总结|零基础学软件测试
- outlook2019启动长时间卡在加载配置文件问题定位
- DynamicTp v1.0.7版本发布。还在为Dubbo线程池耗尽烦恼吗(还在为Mq消费积压烦恼吗?)
- 基于ansible在远程centos服务器docker环境安装kafka
- C++ 中的 Lambda 表达式
- 大数据在linux下分析当红歌手歌词风格
- java基于ssm的在线考试试题库系统
- U盘安装WINDOWS10时提示无法在驱动器上安装WINDOWS解决办法