我是靠谱客的博主 热情汽车,这篇文章主要介绍Spring-cloud-alibaba使用Openfeign进行服务调用,现在分享给大家,希望可以做个参考。

文章目录

    • OpenFeign
    • 注解:
    • 开启feign
    • 使用
      • 服务提供方
      • 服务消费方
    • 实验
    • Webflux
      • 选 WebFlux 还是 Spring MVC?

OpenFeign

Spring Cloud在netflix feign的基础上扩展了支持Spring Mvc注释,并通过自动配置为Spring Boot应用程序提供集成。

注解:

在服务消费方注解

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

开启feign

使用@EnableFeignClients,在main方法中开启。—服务消费方

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class NacosDiscoveryConsumerFeignApplication {

    public static void main(String[] args) {


        SpringApplication.run(NacosDiscoveryConsumerFeignApplication.class, args);
    }
}

使用

使用@FeignClient("nacos-discovery-provider"),标明服务提供方为“nacos-discovery-provide”,而自身注解在使用方的controller上写。
规则如下:

  1. 消费方微服务下新建一个接口,来表示提供方微服务服务下的所有方法。
  2. 需要在每个方法上写明路径。

服务提供方

/**
 * @auther Mr.Wu
 * @date 2021/5/13 15:34
 */
@RestController
@RequestMapping("provider")
public class DemoController {

    @Value("${server.port}")
    private Integer port;

    @GetMapping("/demo")
    public String demo(@RequestParam("name") String name){
        return "hello"+name +port;
    }


}

服务消费方

在这里插入图片描述
controller部分的代码

@RestController
@RequestMapping("demo")
public class DemoCtroller {

    @Autowired
    private DemoFeignService demoFeignService;

    @GetMapping("test")
    public String test(@RequestParam("name") String name){
        return demoFeignService.demo(name);
    }
}

service部分的代码 ---->与服务提供方所提供的方法进行对应。
注意:在GetMapping的时候需要写全路径“provider/demo”;

/**
 * @auther Mr.Wu
 * @date 2021/5/14 11:18
 */
@FeignClient("nacos-discovery-provider")
public interface DemoFeignService {

    @GetMapping("provider/demo")
    public String demo(@RequestParam("name") String name);
}

实验

地址:http://127.0.0.1:8052/demo/test?name=wu,对于这种记得使用@RequestParam进行接收
在这里插入图片描述

Webflux

参考博文,点击这里
Spring WebFlux 是一个异步非阻塞式的 Web 框架,所以,它特别适合应用在 IO 密集型的服务中,比如微服务网关这样的应用中。
在这里插入图片描述

选 WebFlux 还是 Spring MVC?

首先你需要明确一点就是:WebFlux 不是 Spring MVC 的替代方案!,虽然 WebFlux 也可以被运行在 Servlet 容器上(需是 Servlet 3.1+ 以上的容器),但是 WebFlux 主要还是应用在异步非阻塞编程模型,而 Spring MVC 是同步阻塞的,如果你目前在 Spring MVC 框架中大量使用非同步方案,那么,WebFlux 才是你想要的,否则,使用 Spring MVC 才是你的首选。
在微服务架构中,Spring MVC 和 WebFlux 可以混合使用,比如已经提到的,对于那些 IO 密集型服务(如网关),我们就可以使用 WebFlux 来实现。

最后

以上就是热情汽车最近收集整理的关于Spring-cloud-alibaba使用Openfeign进行服务调用的全部内容,更多相关Spring-cloud-alibaba使用Openfeign进行服务调用内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(134)

评论列表共有 0 条评论

立即
投稿
返回
顶部