Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 使用WebFlux的反应式编程如何处理依赖的外部api调用_Spring_Spring Boot_Spring Data_Reactive Programming_Spring Webflux - Fatal编程技术网

Spring 使用WebFlux的反应式编程如何处理依赖的外部api调用

Spring 使用WebFlux的反应式编程如何处理依赖的外部api调用,spring,spring-boot,spring-data,reactive-programming,spring-webflux,Spring,Spring Boot,Spring Data,Reactive Programming,Spring Webflux,我不熟悉反应式编程,我想知道的一件事是,假设我们有一个api,它在内部调用其他3个api。其中,第一个api的结果馈送到第二个api,而第二个api的输出馈送到第三个api。它不会减少到正常的基于单线程的执行。如果是,那么我们为什么要在这种情况下使用反应式编程。在这种情况下,反应式编程不会改变物理或逻辑定律:您仍然需要上一步的结果来生成下一步。因此,使用阻塞API或反应API执行该逻辑可能需要同样多的时间 但是,在阻塞I/O API的情况下,即使在服务器等待远程API响应时,处理该API确实会使

我不熟悉反应式编程,我想知道的一件事是,假设我们有一个api,它在内部调用其他3个api。其中,第一个api的结果馈送到第二个api,而第二个api的输出馈送到第三个api。它不会减少到正常的基于单线程的执行。如果是,那么我们为什么要在这种情况下使用反应式编程。

在这种情况下,反应式编程不会改变物理或逻辑定律:您仍然需要上一步的结果来生成下一步。因此,使用阻塞API或反应API执行该逻辑可能需要同样多的时间

但是,在阻塞I/O API的情况下,即使在服务器等待远程API响应时,处理该API确实会使用一个线程来完成整个操作。对API的数百个调用意味着数百个线程及其相关资源,在等待远程资源时,通常什么都不做

如果您使用的是反应式API,那么服务器将使用更少的线程,并且在等待这些远程响应时不会继续使用资源

总之,虽然没有提高这个用例的速度,但它将提高服务的可伸缩性,并消耗更少的资源、内存和CPU