SpringCloud : OpenFeign服务接口调用
OpenFeign服务接口调用
- 概述
- OpenFeign使用步骤
- OpenFeign超时调用
- OpenFeign日志打印功能
概述
OpenFeign 使用步骤
架构图:
使用步骤
-
接口 注解 (微服务调用接口 @FeignClient)
-
新建cloud-consumer-feign-order80(feign在消费端使用)
-
写pom
在pom文件中新添加:
<!--openfeign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!--eureka client--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
-
改配置
#表示是否将自己注册进EurekaServer,默认为true eureka.client.register-with-eureka=true #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡 eureka.client.fetch-registry=true #入驻地址 eureka.client.service-url.defaultZone=http://localhost:7001/eureka,http://eureka7002.com:7002/eureka/ #集群版 eureka.instance.instance-id=feign-order80 eureka.instance.prefer-ip-address=true
-
主启动
在主启动类上添加 @EnableFeignClients 注解
-
业务类
-
业务逻辑接口 @FeignClient 配置调用provider服务
-
新建PaymentFeignService接口 并新增注解 @FeignClient
@Service @FeignClient(value = "CLOUD-PAYMENT-SERVER") //写要调用服务的名称 public interface PaymentFeignService { /** * 服务调用 调用8001接口的方法 */ @RequestMapping("/pay/get/{id}") public CommonResult<Payment> getById(@PathVariable("id") Integer id); }
-
控制层 controller\
@Autowired private PaymentFeignService paymentFeignService; @RequestMapping("/consumer/pay/get/{id}") public CommonResult<Payment> getPaymentById(@PathVariable("id") Integer id){ return paymentFeignService.getById(id); }
-
-
测试
- 先启动两个eureka集群 7001、7002
- 再启动两个微服务 8001、8002
- 启动 openFeign的 消费者
- 访问 http://localhost/consumer/pay/get/1
- Feign自带负载均衡配置项
总结:
OpenFeign超时控制
超时设置,故意设置超时演示出错情况
-
服务提供方8001故意写暂停程序
-
服务消费方80添加超时方法PaymentFeignService(睡三秒钟)
-
服务消费方80添加超时方法OrderFeignController
-
服务消费方80访问超时方法 http://localhost/consumer/pay/feign/timeout
-
产生超时错误
OpenFeign默认等待一秒钟,超过后报错
OpenFeign默认支持Ribbon
超时控制也有Ribbon进行限制
配置文件中需要开启OpenFeign客户端超时控制
#指的是建立连接后从服务器读到的可用资源所用的时间
ribbon.ReadTimeout=5000
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
ribbon.ConnectTimeout=5000
OpenFeign日志打印功能
配置OpenFeign 打印日志的类型:
#feign日志以什么级别监控哪个接口 接口为业务层接口的全类名
logging.level.com.example.consumerfeignorder80.service.PaymentFeignService=debug
#配置OpenFeign 打印日志的类型
feign.client.default.loggerLevel=FULL
#配置OpenFeign 打印日志的类型
feign.client.default.loggerLevel=FULL
后台日志查看:
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfkacfh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24