Spring WebFlux微服务之间的调用Reactivate-Feign响应式编程

Reactivate-Feign 是 Spring Cloud Feign 的一个扩展项目,它提供了对响应式编程的支持。响应式编程是一种编程范式,主要用于处理异步数据流。在传统的编程模型中,通常使用回调函数或 Future/Promise 来处理异步操作,而在响应式编程中,则使用流(Stream)来表示数据流,并提供了丰富的操作符来处理这些数据流。

Reactivate-Feign 增加了对 Project Reactor 库的集成,Project Reactor 是 Spring Framework 5 中引入的一个响应式编程库,它提供了 Mono 和 Flux 这两种类型来表示异步的响应式流。

Reactivate-Feign 的主要特性包括:

  1. 返回响应式类型: 在使用 Feign 客户端进行服务间通信时,Reactivate-Feign 可以将方法的返回类型从传统的阻塞式类型(例如 ResponseEntity)转换为响应式类型(例如 Mono 或 Flux),从而支持异步响应式编程。

  2. 异步操作处理: 通过响应式类型,可以在请求发送和响应接收时都能够以非阻塞的方式进行处理,从而提高系统的并发性能和吞吐量。

  3. 丰富的操作符支持: Reactivate-Feign 提供了丰富的操作符,可以在响应式流上进行各种操作,例如 map、flatMap、filter 等,使得数据流的处理更加灵活和方便。

  4. 与 Spring Cloud 集成: Reactivate-Feign 可以与 Spring Cloud 很好地集成,可以在 Spring Cloud 应用中直接使用,并与 Ribbon(负载均衡)和 Hystrix(容错)等组件一起使用。

通过引入 Reactivate-Feign,可以使得在使用 Feign 进行服务间通信时能够更好地利用响应式编程的优势,从而提高系统的性能和可伸缩性。

注意:启动类添加下面两个注解

@EnableDiscoveryClient

@EnableReactiveFeignClients(basePackages = {"com.test.client"})

1、引用Maven依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>
    <version>2.1.6</version>
</dependency>
<dependency>
    <groupId>com.playtika.reactivefeign</groupId>
    <artifactId>feign-reactor-cloud</artifactId>
    <version>4.0.3</version>
</dependency>
<dependency>
    <groupId>com.playtika.reactivefeign</groupId>
    <artifactId>feign-reactor-spring-configuration</artifactId>
    <version>4.0.3</version>
</dependency>
<dependency>
    <groupId>com.playtika.reactivefeign</groupId>
    <artifactId>feign-reactor-webclient</artifactId>
    <version>4.0.3</version>
</dependency>

2、Feign接口类实现(使用用方式和OpenFeign一样,只是注解不一样,注解参数和使用一样)

/**
 * @author Lucas
 * date 2024/3/7 12:40
 * description Feign类
 */
@ReactiveFeignClient(name = "test-service")
public interface TestFeign {
    /**
     * 测试新增
     * @param test
     * @return
     */
    @PostMapping(value = "/test/save")
    Mono<Test> save(@RequestBody Test test);
}

3、YAML配置 

reactive:
  feign:
    #超时配置
    client:
      config:
        demoReactorFeign:
          options:
            connectTimeoutMillis: 2000
            readTimeoutMillis: 2000
    #负载均衡配置
    loadbalancer:
      enabled: true
    #断路器配置
    circuit:
      breaker:
        enabled: true

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值