问题标签 [spring-rsocket]

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 回答
105 浏览

rsocket - RSocket:RejectedResumeException(0x4):未知的恢复令牌

我在 Spring Boot (2.5.3) 中使用 rsocket 启动器。我有一个请求者和响应者设置并且它工作得很好(对于所有类型的 rsocket 通信)。问题是当我试图在请求者端实现可恢复性选项时。

这是请求者的代码

在响应者方面:

但是当响应者宕机并活着回来时,我在请求者控制台上得到以下错误:

谁能建议为什么这种行为?另外我想了解简历上的这个标记是什么?

谢谢。

0 投票
0 回答
40 浏览

spring-webflux - Spring reactor rsocket 连接限制

我正在使用 spring 集成 TCP 管理套接字客户端并尝试使用 RSocket。我的目标服务器有连接限制,所以我需要像max-connections. RSocket 会支持这个吗?

如果不支持,我在使用rate-limit(third part lib)吗?

0 投票
0 回答
74 浏览

spring - RSocket 负载测试显示性能不佳

我正在尝试在负载 Vs WebClient 上对 RSocket(使用 Spring)性能进行基准测试。

在单元测试中,RSocket 调用显示出更好的性能,但在负载测试中,与 http(使用 Webclient)相比,性能显着下降。

是暴露 RSocket 端点的控制器

是调用 RSocket 端点的客户端类。

注意:我正在使用 http 端点公开 RSocket 客户端,以便能够使用 Gatling 对它们进行负载测试。

试验结果:

1- 单次通话:

  • 网络客户端 => 700 毫秒
  • RSocket => 300ms

2- 200 个并发呼叫:

  • 网络客户端 => 880 毫秒
  • RSocket => 3_400ms

在 Webclient 调用中,我通过在请求服务器之前将 Flux 数据收集到列表中来减少对服务器的调用次数。在 RSocket 调用中,我正在流式传输所有数据,因此我正在处理并在收到它们后立即发送给客户端(=> 每个客户端请求对服务器的调用更多)。

0 投票
0 回答
28 浏览

spring-rsocket - spring rsocket 响应元数据

使用 spring-boot-starter-rsocket 时,有没有办法从带有 MessageMapping 注释的方法发送响应元数据?我也看不到 RSocketRequester 接收元数据的方法(所有 RSocketRequester.RetrieveSpec retrieveMethods 似乎都返回解码的响应有效负载数据,并且无法返回响应有效负载元数据)。

0 投票
0 回答
26 浏览

serversocket - RSocket 服务器一般可以有多少个连接?

我知道这是一个愚蠢的问题(因为它确实取决于服务器硬件),但是 RSocket 服务器(Java Spring Boot)通常可以有多少个连接?我问这个问题是因为我对 rsocket 负载均衡器很好奇。rsocket 负载均衡器似乎非常好,这让我想知道负载均衡器是否可以增加您通常能够与其他类型的套接字建立的连接数?

0 投票
0 回答
16 浏览

callback - 客户端可以在 RSocket 中提供对服务器消息的响应吗?

我正在探索 RSocket,我想知道客户端是否有办法同步响应来自服务器的流式消息......基本上是确认或拒绝消息。

见图表说明: 在此处输入图像描述

我正在使用请求流方法,这意味着客户端发送一条初始消息并期望从服务器返回多条消息。

我可以看到如何使用请求通道来异步响应从服务器发送的消息,但我希望找到更同步的东西,以便服务器可以根据上下文处理响应。

0 投票
1 回答
93 浏览

spring-boot - 如何将响应式拦截器添加到 Spring Boot 注释控制器?

rsocket-micrometer我已经在客户端设置了 rsocket 指标,通过配置RSocketConnector拦截器,像这样(Kotlin):

但在SERVER端,我使用带注释的 ( @MessageMapping) Spring Boot RSocket 控制器,如下所示(Java):

在这里,我没有明确控制连接器。
如何在服务器端添加拦截器?

0 投票
1 回答
510 浏览

spring-boot - RSocket over websocket - reactor.core.Exceptions$ErrorCallbackNotImplemented: java.util.concurrent.CancellationException: Disposed

我使用 Spring webflux 来满足一般要求,使用 Spring RSocket over websocket 来满足服务器推送和聊天要求。

春季启动版本 - 2.5.6

应用程序.yml

RSocketConfiguration.java

RocketController.java

RSocket 的测试客户端,

服务器执行上述客户端代码时出现异常,

0 投票
0 回答
66 浏览

java - 如何在 Spring Java RSocket 中流式传输音频/视频文件

我正在运行 RSocket(Spring 项目反应器)服务器,并希望将音频/视频文件流式传输到 RSocket 客户端。这是 RSocket 控制器示例代码:

这里它显示参数不匹配文件输入流不能转换为流...

0 投票
0 回答
46 浏览

jaeger - RSocket rpc 和 Jaeger 追踪系统

每个人!我在使用 RSocket RPC 和 Jaeger 时遇到问题。我正在使用这些依赖项

客户端的 RSocket 通信调用:

沟通成功。但是,不会添加跟踪所需的元数据。Jaeger 分别在每个服务中接收 span 和 log 消息。 我得到异常(客户端):

java.lang.ClassCastException:类 io.opentracing.propagation.TextMapInjectAdapter 不能转换为类 io.opentracing.propagation.TextMap(io.opentracing.propagation.TextMapInjectAdapter 和 io.opentracing.propagation.TextMap 位于加载程序的未命名模块中 'app ') 在 io.jaegertracing.internal.propagation.B3TextMapCodec.inject(B3TextMapCodec.java:50) ~[jaeger-core-0.35.1.jar:0.35.1] 在 io.jaegertracing.internal.PropagationRegistry$ExceptionCatchingInjectorDecorator.inject( PropagationRegistry.java:75) ~[jaeger-core-0.35.1.jar:0.35.1] at io.jaegertracing.internal.JaegerTracer.inject(JaegerTracer.java:207) ~[jaeger-core-0.35.1.jar :0.35.1] 在 io.rsocket.ipc.tracing.SpanSubscriber.(SpanSubscriber.java:122) ~[rsocket-ipc-core-0.3.0.jar:na] 在 io.rsocket.ipc.tracing.Tracing。 lambda$null$0(Tracing.java:137) ~[rsocket-ipc-core-0.3.0.jar:na] 在 reactor.core.publisher.Operators$LiftFunction.lambda$liftScannable$1(Operators.java:2525) ~[reactor-core-3.4.6.jar:3.4.6] 在 reactor.core.publisher.MonoLift.subscribeOrReturn (MonoLift.java:40) ~[reactor-core-3.4.6.jar:3.4.6] 在 reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57) ~[reactor-core-3.4.6. jar:3.4.6] 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[reactor-core-3.4.6.jar:3.4.6] 在 io.opentracing.contrib.reactor。 TracedSubscriber.lambda$onNext$2(TracedSubscriber.java:69) ~[opentracing-reactor-0.1.0.jar:na] at io.opentracing.contrib.reactor.TracedSubscriber.withActiveSpan(TracedSubscriber.java:95) ~[opentracing- reactor-0.1.0.jar:na] 在 io.opentracing.contrib.reactor.TracedSubscriber.onNext(TracedSubscriber.java:69) ~[opentracing-reactor-0.1.0.jar:na] 在 reactor.core。publisher.Operators$MonoSubscriber.complete(Operators.java:1815) ~[reactor-core-3.4.6.jar:3.4.6] 在 reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:61) ~[reactor -core-3.4.6.jar:3.4.6] 在 reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.4.6.jar:3.4.6] 在 reactor.core .publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[reactor-core-3.4.6.jar:3.4.6] at io.opentracing.contrib.reactor.TracedSubscriber.lambda$onNext$2(TracedSubscriber.java :69) ~[opentracing-reactor-0.1.0.jar:na] at io.opentracing.contrib.reactor.TracedSubscriber.withActiveSpan(TracedSubscriber.java:95) ~[opentracing-reactor-0.1.0.jar:na]在 io.opentracing.contrib.reactor.TracedSubscriber.onNext(TracedSubscriber.java:69) ~[opentracing-reactor-0.1.0.jar:na] 在 reactor.core.publisher.Operators$MonoSubscriber。完成(Operators.java:1815)~[reactor-core-3.4.6.jar:3.4.6] 在 reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249)~[reactor-core-3.4 .6.jar:3.4.6] 在 io.opentracing.contrib.reactor.TracedSubscriber.lambda$onNext$2(TracedSubscriber.java:69) ~[opentracing-reactor-0.1.0.jar:na] 在 io.opentracing。 contrib.reactor.TracedSubscriber.withActiveSpan(TracedSubscriber.java:95) ~[opentracing-reactor-0.1.0.jar:na] at io.opentracing.contrib.reactor.TracedSubscriber.onNext(TracedSubscriber.java:69) ~[opentracing -reactor-0.1.0.jar:na] ...na] 在 io.opentracing.contrib.reactor.TracedSubscriber.withActiveSpan(TracedSubscriber.java:95) ~[opentracing-reactor-0.1.0.jar:na] 在 io.opentracing.contrib.reactor.TracedSubscriber.onNext(TracedSubscriber. java:69) ~[opentracing-reactor-0.1.0.jar:na] ...na] 在 io.opentracing.contrib.reactor.TracedSubscriber.withActiveSpan(TracedSubscriber.java:95) ~[opentracing-reactor-0.1.0.jar:na] 在 io.opentracing.contrib.reactor.TracedSubscriber.onNext(TracedSubscriber. java:69) ~[opentracing-reactor-0.1.0.jar:na] ...

问题在于 RSocket 和 opentracing-spring-jaeger-cloud-starter 的 opentracing-api 版本不一致。

RSocket 使用 opentracing-api 版本 0.31.0 opentracing-spring-jaeger-cloud-starter 使用 opentracing-api 版本 0.32.0(最新版本 - 0.33.0)

是否有使用新的 opentracing-api 使用 RSocket RPC 和 Jaeger 跟踪的解决方案?