文章目录
- 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上写。
规则如下:
- 在
消费方微服务下新建一个接口,来表示提供方微服务服务下的所有方法。 - 需要在每个方法上写明路径。
服务提供方
/**
* @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进行服务调用内容请搜索靠谱客的其他文章。
发表评论 取消回复