ToB企服应用市场:ToB评测及商务社交产业平台

标题: 服务远程调用-Open Feign-微服务焦点组件【分布式微服务笔记04】 [打印本页]

作者: 大号在练葵花宝典    时间: 2024-7-22 10:43
标题: 服务远程调用-Open Feign-微服务焦点组件【分布式微服务笔记04】
服务远程调用-Open Feign-微服务焦点组件【分布式微服务笔记04】

服务远程调用-Open Feign

基本先容

Feign和Open Feign的区别

Feign

OpenFeign

OpenFeign代码实现

1.添加依赖
  1. <dependency>
  2.     <groupId>org.springframework.cloud</groupId>
  3.     <artifactId>spring-cloud-starter-openfeign</artifactId>
  4. </dependency>
复制代码
2.开发OpenFeign接口
  1. @Component
  2. @FeignClient(value = "MEMBER-SERVICE-PROVIDER") //指定调用的服务是哪个【可以是集群】
  3. public interface MemberFeignService {
  4.     //定义方法【就是远程调用的接口】
  5.     /*
  6.     解析:
  7.         1.远程调用的方式 : get
  8.         2.远程调用的url :http://MEMBER-SERVICE-PROVIDER/member/get/{id}
  9.         3.MEMBER-SERVICE-PROVIDER就是服务提供方在eureka-server注册的服务【远程对接时MEMBER-SERVICE-PROVIDER会由eureka来获取 】
  10.         4.openfeign 会根据负载均衡来决定调用集群中的哪个【默认时轮询】
  11.      */
  12.     @GetMapping("/member/get/{id}") //这里就是提供方的接口
  13.     Result getMemberById(@PathVariable("id") Long id);
  14. }
复制代码
3.编写主启动类
  1. @SpringBootApplication
  2. @EnableEurekaClient
  3. @EnableFeignClients//启动 OpenFeignClient
  4. public class MemberConsumerOpenfeignApplication {
  5.     public static void main(String[] args) {
  6.         SpringApplication.run(MemberConsumerOpenfeignApplication.class, args);
  7.     }
  8. }
复制代码
4.编写Controller
  1. @RestController
  2. @RequestMapping("/member/consumer/openfeign")
  3. public class MemberConsummerFeignController {
  4.     @Autowired
  5.     private MemberFeignService memberFeignService;
  6.     @GetMapping("/get/{id}")
  7.     public Result getMemberById(@PathVariable("id") Long id){
  8.         return memberFeignService.getMemberById(id);
  9.     }
  10. }
复制代码
5.访问接口 http://localhost/member/consumer/openfeign/get/1 远程调用成功

OpenFeign日记设置

Feign 提供了日记打印功能,可以通过设置来调解日记级别,从而对Feign 接口的调用环境进行监控和输出
日记级别描述NONE默认的,不显示任何日记BASIC仅记载哀求方法、URL、响应状态码及执行时间HEADERS除了BASIC中界说的信息之外,还有哀求和响应的头信息FULL除了HEADERS中界说的信息之外,还有哀求和响应的正文及元数据常见的日记输出级别有5 种,分别是error、warn、info、debug、trace
日记输出级别描述error错误日记,指比较严峻的错误,对正常业务有影响,需要运维设置监控的warn警告日记,一般的错误,对业务影响不大,但是需要开发关注info信息日记,记载排查题目的关键信息,如调用时间、出参入参等等debug用于开发DEBUG 的,关键逻辑里面的运行时数据trace最详细的信息,一般这些信息只记载到日记文件中OpenFeign日记设置示例:
OpenFeign调用超时

修改默认超时时间

在application.yml修改即可
  1. server:
  2.   port: 80
  3. spring:
  4.   application:
  5.     name: e-commerce-consumer-openfeign-80 #配置应用的名称
  6. #配置eureka-client【略】......
  7. # 修改默认超时时间
  8. ribbon:
  9.   #设置feign 客户端超时时间(openFeign 默认支持ribbon)
  10.   #  ReadTimeout: 8000 表示 指的是建立连接后从服务器读取到可用资源所用的时间【时间单位是毫秒】
  11.   ReadTimeout: 8000
  12.   #指的是建立连接所用的时间,适用于网络状况正常的情况下,
  13.   #两端连接所用的时间
  14.   ConnectTimeout: 8000
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4