问题标签 [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.
java - 有没有办法在 Spring RSocket 中查看 REQUEST_N 交换
我正在使用 Spring 对 RSocket 的支持,特别是请求流模型。IE:
如果我正确理解 RSocket,Flux 响应将作为 request(n) 约定下的一系列有效负载消息传递回客户端。例如,一次有 n 条有效载荷消息。在每一系列消息之后,客户端使用 REQUEST_N 消息向服务器发送一个附加集,这为背压缓解提供了基础。
在java库的API(org.springframework.messaging.rsocket,它基于io.rsocket.RSocket)中,有没有办法在REQUEST_N消息到达时处理/访问它们,或者显式设置N的值通过策略(并查看请求者传递给服务器的值)?
原因/原因:我正在 Kafka 上实现一个 rsocket 外观,并尝试为订阅提供一个请求流机制,该机制将在消息被消费时支持自动偏移提交。对于请求流约定,我认为请求者偶尔的 REQUEST_N 交互是可以推进主题提交偏移量的理想点,因为它由请求者传输意味着响应者发送的前面的 Payload 消息已经已收到。
我见过的唯一其他选择是使用请求通道模型,以便请求者可以发送和初始订阅请求,并开始接收数据,还可以发送周期消息来专门控制同一通道上的提交偏移量。无论如何,我正在考虑提供它,但想知道是否有办法将逻辑注入到流的周期性请求(n)周期中。
rsocket - RSocket-JS + RSocketResumableTransport 不工作
RSocketResumableTransport 似乎不起作用。我有以下代码,我正在使用 RSocketResumableTransport 但它从不连接到服务器(spring-boot 版本 2.4.0-M1)。我正在使用 rsocket-websocket-client": "0.0.19" 版本。下面是用于连接的类:
浏览器控制台中的连续错误如下。此错误不断重复,直到超时:
如果我做错了什么,请告诉我?
java - Spring Boot 反应式 Redis 连接
我是 redis 反应式实现的新手。我正在尝试在 localhost:6379 (默认位置)上设置一个使用 redis 的后端。现在文档说“如果要连接到 localhost:6379 的 Redis 服务器,我们不需要添加任何配置代码。”
所以我像往常一样启动了我的redis:
做了一个简单的post请求
到这个控制器
一切都很顺利,日志甚至指出哈希已经创建。但是,当我执行 redis-cli 并检查任何键时,什么都没有。
我也尝试使用 LettuceConnectionFactory 进行连接
然而没有运气,我猜弹簧靴以某种方式连接到嵌入式redis,这不是我想要的,那么我如何连接到redis实例?
编辑
这是消息 repo 和服务 repo 返回一个 MonoIgnorePublisher,在文档中,Mono 要么返回一个元素,要么返回一个错误,这是一个错误吗?:
回购:
服务:
这是 ReactiveRedisOperation 配置:
spring-webflux - RSocket + webflux 请求-响应弹性
给定以下代码(使用 Spring Webflux 和 RSocket):
问题是:
当服务器负载很重时,客户端是否只是将请求发送到服务器并且服务器会缓冲该请求?或者实际上是否有某种机制让客户端等到服务器向客户端发送信号?
如果客户端仍然发送请求,那么在某些时候服务器将内存不足来缓冲所有多余的请求。我们一般是怎么处理的?netifi 经纪人可以在这种情况下提供帮助吗?(假设它是突发流量,我们无法及时扩展或扩展服务器)
spring-webflux - 如何在 Spring Webflux / RSocket 中负载平衡通道
假设我们有服务 A 和服务 B。服务 A 需要向服务 B 发送无限量的数据。在 spring webflux 或 rsocket 中,我们可以通过让服务 A 发送通量和接收通量来实现。
问题出在我们有 1 个服务 A 和 10 个服务 B 时。服务 A 将选择服务 B 中的一个并将数据无限期地流式传输到该特定服务,这会使只有 1 个服务忙碌而其他服务空闲。
有没有办法从服务 A 流式传输数据并将数据流分成 10 个服务 B?像netifi这样的rsocket代理可以做到吗?
rsocket - RSocket- 在请求-响应语义上公开服务方法
我试图通过 RSocket 实现中的 requestResponse 范式公开我所有的后端服务调用(所有返回对调用客户端的响应)。为此,我必须使用 RPC 或反射。我不想走 rsocket-RPC 的路线。反射大大降低了吞吐量。如果您对此要求有任何解决方案或建议,请告诉我。
spring-boot - RSocket 连接可以持续多长时间?
我知道 RSocket 连接是双向的。在连接终止之前,客户端可以通过 RSocket 连接到服务器多长时间?
如果连接确实终止了,如果服务器想向客户端发送一些东西,它如何重新连接?
java - RSocket 在 500 条消息后未发送
使用从带有 RSocket 的 Spring Initializr 下载的新项目,我在尝试异步发送即发即弃消息时遇到问题。我可以发送和接收低于 500 条的任意数量的消息,但是一旦我尝试发送第 500 条或之后的任何消息,就不会收到它们。从日志来看,这似乎与 Netty 在连接池中的最大 500 个连接有关,但是,一旦发送消息,RSocket 不应该将这些连接返回给 Netty 吗?尤其是在使用的时候retrieveMono(Void.class)
?
java - RSocket 测试在一起运行时失败 - 但单独通过
我有多个测试来测试不同的路由和单独的类,这些测试需要设置 RSocket 客户端然后处置客户端,下面是一个示例。
但是问题是,它们都使用相同的 RSocket 端口,并且一旦测试完成,它们都会处理 RSocket 客户端,这会影响其他测试。我怎样才能避免这种情况?
谢谢!