问题标签 [reactor-netty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
3405 浏览

spring-boot - Springboot Webclient 抛出“现有连接被远程主机强行关闭”。

Springboot Webclient尝试在远程服务器调用rest api时抛出“An existing connection was forced by the remote host”错误。

当服务器加载时,第一个服务器请求加载正常。当我在一段时间后(比如 5 分钟)发送第二个请求时,我收到了错误消息。

Webclient创建代码:

请在下面找到日志。看起来连接没有正确关闭。

你能告诉我如何解决它吗?

0 投票
3 回答
8150 浏览

java - Spring 5 Webclient 在 doAfterSuccessOrError 中抛出异常

我是一名 java 7 开发人员(终于)在 java 8 中迈出了第一步。很多这些东西对我来说仍然是新的。我正在尝试使用 spring 5 WebClient,因为文档指出 RestTemplate 将被移走以支持 WebClient。

我试图在 .doAfterSuccesOrError 中引发异常。但是我不能使用 throw throwable 原因然后它只是在它周围添加一个 try catch 。我读了几篇文章,这是我最后一次尝试添加 Mono.error(throwable) 但由于没有返回,我很确定这是没有效果的原因。

这是一个 POST 调用,成功时返回 204 No Content。目前我得到的是 422,尽管这在这个特定问题中并不重要。

有人可以教我如何将异常抛出回调用环境吗?

0 投票
3 回答
315 浏览

java - 发送另一个味精后如何接收单声道味精

如何发送 buf 然后接收 msg

方法

我试图通过从连接出站发送一条消息并从入站接收一条消息然后返回一条消息单声道来实现此方法。但我只能在 then(Publisher) 方法中接收消息。似乎无法返回数据 Mono

我试过这个。

但它会阻塞直到连接超时

而且我尝试了另一个代码。我添加了一个handle方法并将响应放入地图。然后我可以Mono.fromSupply()map.get(key) != null.

它会阻塞线程。

0 投票
1 回答
1954 浏览

spring - SOAP 如何与 Spring Reactor 的 WebClient 一起使用?

我已设法建立与沙盒服务器的 SSL 连接,并通过应用内容类型 MediaType.APPLICATION_XML 将对象作为序列化 XML 对象发送。但是,这还不够,因为目标服务仅支持 SOAP 并希望消息正确地包装在信封中。

这是来自服务的响应:

不幸的是,WebClient 不支持媒体类型 application/soap+xml。当我尝试使用它时,WebClient 会抛出以下错误:

0 投票
1 回答
381 浏览

rest - Spring WebFlux REST API - 消息驱动

我最近一直在玩 Spring Webflux,它看起来非常有用和高效。此外,阅读反应式系统,似乎此类系统的定义特征之一是它们是消息驱动的。

在网上看到这篇文章:https ://www.captechconsulting.com/blogs/annotation-driven-reactive-web-apis-with-spring-webflux

这篇文章还提到,

Spring WebFlux 包含对响应式 HTTP Rest API、WebSocket 应用程序和服务器发送事件的支持。Spring WebFlux 是响应式的、弹性的、可扩展的和消息驱动的。

我的问题是,如果编写一个简单的 REST API,就像帖子描述的那样,执行由 MongoDB 支持并使用spring-boot-starter-data-mongodb-reactive 的CRUD 操作,我可以调用我的 API 服务消息驱动吗?我还可以添加一个Webclient来与一些下游服务通信。

在 REST API 的上下文中驱动消息是否有意义?

0 投票
1 回答
4008 浏览

java - reactor-netty:使用 keep-alive HTTP 客户端

reactor-netty用来请求一组 URL。大多数 URL 属于同一主机。reactor-netty即使已经为前一个 URL 建立了与主机的连接,似乎也为每个 URL 建立了一个全新的 TCP 连接。当建立数百个同时连接时,一些服务器会断开新连接或开始缓慢响应。

代码示例:

在日志中,我看到同一远程主机的本地端口不同,并且活动和非活动连接的总和远高于不同主机的数量。这就是为什么我认为这reactor-netty不是重用已经建立的连接。

keep-alive是否可以通过与主机的同一 TCP 连接使用 HTTP 客户端在同一主机上请求多个 URL ?如果没有,我如何限制同时连接到同一主机的数量或按顺序执行对同一主机的请求(下一个请求只有在收到对前一个响应的响应后)?

我使用Californium-SR6发布火车。

0 投票
1 回答
584 浏览

reactor-netty - 如何使用reactor-netty(没有Spring)接收分段文件上传?

我已经看到有 reactor-netty 关于如何使用多部分形式发布文件的示例(https://github.com/reactor/reactor-netty/blob/89796a1839a1439a1800424e130515357a827392/src/test/java/reactor/netty/http/客户端/HttpClientTest.java#L337 )

但是我找不到任何关于如何使用可以解析多部分信息的 reactor-netty 编写服务器的信息。

似乎netty能够使用HttpPostRequestDecoder类来做到这一点,但我看不出它适合什么......

我还看到InterfaceHttpData了一个母类,Attributes但是FileUpload我看不到在哪里可以从请求中获取这些对象...

有没有人这样做过?有什么线索吗?

非常感谢

0 投票
1 回答
3448 浏览

spring-boot - Spring Webclient 连接未正确关闭

我正在尝试使用 Springboot-Reactive webclient 进行 HTTP 调用。我因远程服务器错误而关闭连接。

请找到以下使用 Webclient 进行休息调用的代码。

Webclient创建的代码:

第一次通话后,我收到以下日志:

当我在一段时间后(比如 10 分钟)拨打电话时,连接变为非活动状态。我收到以下日志:

我看到连接没有正确返回到池中。我在配置中有什么遗漏吗?我是否正确关闭了连接?我认为这应该由netty处理,对吗?

0 投票
1 回答
4966 浏览

spring-webflux - Spring webclient 是非阻塞客户端吗?

我不明白反应式网络客户端的工作原理。它说spring webclient是非阻塞客户端,但是这个webclient似乎在等待来自远程api的onComplete()信号,然后它可以处理从远程api发出的每个项目。当从目标 api 触发 onNext() 时,我期望 webclient 可以处理每个项目

我是春季 webflux 世界的新手。我读过它,它说它使用 netty 作为默认服务器。而这个网络使用事件循环。所以为了理解它是如何工作的,我尝试创建 2 个小应用程序,客户端和服务器。服务器应用程序仅返回简单的通量,每个项目延迟 1 秒。客户端应用程序使用 webclient 调用远程 api。

服务器:

客户:

从服务器登录:

来自客户端的日志:

我希望客户端不会等待 4 秒然后得到实际结果。如您所见,服务器在 22:44:21.126 开始发出 onNext() ,客户端在22:44:24.159获得结果。所以我不明白如果 webclient 有这种行为,为什么它被称为非阻塞客户端。

0 投票
2 回答
691 浏览

java - 将 webclient 与 Mono 和 Flux 结合使用的问题

嗨,我有 Flux 并且在迭代每个元素期间它会创建新的 mono 。我还有 Flux 之外的其他单声道。并想做以下事情:当通量(具有相应的内部单声道结束)然后做第二个单声道。具有挑战性的部分是 mono 内部的通量从 webclient 请求创建。作为起点,请查看“加载”方法。基本上没有 webclient 它可以工作,但如果 webclient 里面的地图工作之后。使用弹簧引导 2

摇篮依赖: