当前位置:   article > 正文

微服务系列之-Feign服务集成_openfeign 微服务合并 单体部署

openfeign 微服务合并 单体部署

一.介绍

feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Spring Cloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端。原理可能很多,但是用起来其实并不是那么复杂。

二.集成操作

  1. 依赖添加
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  1. 关键注解添加
    在这里插入图片描述

  2. 调用接口添加
    在这里插入图片描述被调用方代码:

@Slf4j
@RestController
@RequestMapping(value = "/eureka-client/feign")
public class FeignEurekaController
{
    /**
     * feign调用信息获取
     *
     * @return
     * @exception
     * @date        2020/5/7 10:17
     */
    @GetMapping(value = "/info")
    public ResultVO<?> feignInfo()
    {
        log.info("FeignController|feignInfo|通过FEIGN调用方式获取数据");
        return new ResultVO<>("200", "SUCCESS");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

调用方代码:

public ResultVO<?> feignInfo()
    {
        log.info("EurekaClientService|feignInfo|信息获取");
        ResultVO<?> resultVO = this.eurekaClientFeign.feignInfo();
        log.info("EurekaClientService|feignInfo|信息获取|请求出参:={}", resultVO);
        return resultVO;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 调用结果
    在这里插入图片描述
    成功调用到被调用方服务!!!

三.补充

如何查看调用接口具体响应时长、路径、请求头等信息,好协助自己优化接口,看下面代码有详细说明:

@Configuration
public class FeignClientConfiguration
{
    /**
     *   Logger.Level 的具体级别如下:
     *          NONE:不记录任何信息
     *          BASIC:仅记录请求方法、URL以及响应状态码和执行时间
     *          HEADERS:除了记录 BASIC级别的信息外,还会记录请求和响应的头信息
     *          FULL:记录所有请求与响应的明细,包括头信息、请求体、元数据
     */
    @Bean
    feign.Logger.Level feignLoggerLevel()
    {
        return feign.Logger.Level.FULL;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

Feign的调用方式我目前用到两种:

  • 一种是“服务名调用”
@FeignClient(value="qyeurekaclient", fallbackFactory = EurekaClientFallback.class, configuration = {FeignClientConfiguration.class})
  • 1
  • 第二种“Url路径调用”
@FeignClient(name = "github-client", url = "https://ip:port", allbackFactory = EurekaClientFallback.class, configuration = {FeignClientConfiguration.class})
  • 1

至此,Feign服务集成完毕!!!

微服务项目:微服务集成项目

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/428896
推荐阅读
相关标签
  

闽ICP备14008679号