问题标签 [rsocket-java]

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 投票
1 回答
316 浏览

rsocket - 服务器未在 RSocket Fire and Forget 情况下接收数据

我有以下 RSocket 服务器

和下面的 RSocket 客户端

如您所见,我正在尝试将“ping”作为有效负载数据从客户端发送到服务器

当我第一次启动服务器并启动客户端时,我看到了> from client: ping

如果我再次重新启动客户端,我在服务器上看不到任何消息。断点甚至没有在服务器上命中

我的理解是 Fire and Forget 只是简单地发送数据 & 不费心等待 & 看看服务器是否成功处理数据,但在我的情况下,服务器本身没有在客户端的后续运行中接收数据(最好新客户)

有什么我想念的吗?

我正在使用&1.0.0-RC5的版本rsocket-corersocket-transport-netty

操作系统:Ubuntu 16.04

0 投票
1 回答
1059 浏览

spring-boot - Spring 5 WebFlux 服务器通过 RSocket 协议推送通知

案例如下:

在作为客户端AB通过协议与服务器建立连接后RSocket,每个客户端都可以通过自己的事件(event Aevent B)通知,以触发客户端上的某些操作(event X -> action on client X)。

谢谢

0 投票
2 回答
703 浏览

reactor-netty - 使用 TLS 保护时 RSocket 不工作 - 服务器 java.lang.UnsupportedOperationException - 客户端 java.nio.channels.ClosedChannelException

更新我已经将一个示例项目上传到 Github,您可以在其中重现该问题。检查自述文件中的说明。

我有一个可用于请求流的 RSocket 服务器,生成一个带有 n 个随机数的 Flux:

我还创建了一个连接到 RSocket 并请求 10 个随机数的客户端:

这完美运行。

服务器日志:

客户端日志:

但是我想在 RSocket 通信中使用 TLS,所以我为服务器创建了一个 certificate.pem/key.pem 并配置它:

在客户端,我创建了一个 truststore.jks,导入了 certificate.pem 并将客户端配置为使用安全通信:

启动服务器后,我启动客户端。服务器的接受器请求流被调用(打印Generating 10 random numbers)但立即失败:

在客户端有一个关闭的通道异常:

如何修复它以使用 TLS?

0 投票
1 回答
2579 浏览

spring-webflux - WebFlux + RSocket + 弹簧

有人可以告诉我或给出一个使用WebFlux、RScoket 和 Spring(或 SpringBoot)的现成 CRUD 示例吗?

我研究了RSocket文档WebFlux,也写了我的简单示例,但我希望看到一个真正的CRUD应用程序使用RSocket的基本方法。

我将不胜感激。谢谢。

0 投票
2 回答
879 浏览

spring-boot - 从 RSocket-Java 客户端连接到 Spring Boot RSocket 服务器时出错

通过 TCP 连接到 Spring Boot RSocket 应用程序时遇到问题。使用 RSocketRequester 时客户端工作正常,但是当我尝试使用 RSocketFactory 客户端连接时,它不断收到错误。代码如下。

这会产生如下错误:

据我了解,这个特定错误是由于 netty 消息包装(来自stackoverflow 上的其他线程),但如何解决呢?服务器是 Spring Boot 5+ RSocket,但客户端只使用 RSocket-Java。

0 投票
1 回答
181 浏览

spring-webflux - 使用 RSocket 和 Project Reactor 实现 202 ACCEPTED - Retry-After 行为

我正在实现一个典型的用例,其中客户端请求将异步生成的资源。因此,会立即生成并返回一个 resourceID:

此时 SERVER 中有一个后台任务,它最终会产生一个结果并将其存储在与 resID 关联的数据库中。客户端会定期请求资源,重试直到可用:

我认为 RSocket 将是一个完美的选择,以避免这种无休止的 CLIENT 重试,直到资源可用(步骤 3. on)。

哪种交互模型更适合这个问题,我该如何实现它?

考虑如下存储库:ResourceRepository.Mono<Result> getResult(String resID)

如果我选择请求/响应交互模型,我的情况与以前相同。除非有办法让 Mono 重试直到有结果。这可能吗?

使用请求/流,我可以返回Flux<Response>与 response.status=PROCESSING 类似的结果,直到对 Postgre 的查询返回结果,然后 Flux 将具有 response.status=OK 的元素,并且 Flux 将完成。在配置的时间段内完成 Flux 需要最长的时间而没有结果。在这种情况下,我怎么能提出这个问题?

我需要创建一个 Flux,它定期发出(具有最大周期超时),当存储库返回一个空的 Mono 时有一个没有结果的元素,或者当存储库有它时有一个实际值,完成 Flux。

0 投票
1 回答
822 浏览

spring-boot - RSocket Js 客户端未获取从 Spring Boot RSocket 服务器生成的元素

Github 上提供的示例项目:https ://github.com/codependent/rsocket-rating-service

Spring Boot RSocket 服务器消息映射需要一个 requestResponse 请求,返回一个简单的 POJO:

在客户端,我有以下 JS 代码连接到 RSocket 服务器并请求一个值:

索引.html

访问http://localhost:8080/index.html后输入一些文本并推送发送。

请求到达记录正确生成 onNext 值的服务器:

但是在客户端

永远不会被调用,浏览器日志只显示:

为什么它没有从服务器获取生成的值?

0 投票
0 回答
191 浏览

reactive-programming - RSocket 数据库(Cassandra 或 Postgresql)性能研究

我正在尝试在我的组织中将 RSocket 用于微服务。由于我们需要从 Cassandra 和 Postgresql 等数据库进行通信和获取很多内容,因此我观察到性能下降。

当我运行一个返回模拟响应的示例 Rsocket 客户端和 Rsocket 服务器时,我得到了 12k TPS 的吞吐量。一旦我与 Cassandra 集成以获得相同的代码库,它是 300 TPS,而 Postgresql 是 400 TPS。如果我将 HikariCP 添加到 Postgresql,它是 700 TPS。

对于阻塞 HTTP 的相同用例,它是 800 TPS,非阻塞 HTTP 是 1900 TPS。

这项研究是在 Mac 笔记本电脑 8 核、16 GB、rsocket-java(无 Spring 或 RPC)上进行的。

我很困惑 RSocket 是否适合微服务用例。

请提供您的经验和任何可用于进一步研究的基准。

0 投票
2 回答
1452 浏览

spring-boot - 如何使用 rsocket 在 Spring Boot 中配置 SSL/TLS?

我已阅读stackoverflow 中的相关问题。但是,答案仅说明如何配置身份验证检查。我需要在 Spring Boot 中使用 rsocket 加密所有传输的数据。如何在带有 SSL/TLS 的 Spring Boot 中使用 tls。当我如下所示初始化 rsocket 客户端时,我找不到任何受支持的方法,尽管我知道 rsocket 它本身可以支持 SSL/TLS。我找到了一些例子:示例

0 投票
1 回答
920 浏览

spring-boot - rsocket - 如何平衡负载

rsocket 似乎是一个很酷的主意。我有这个问题,我找不到更好的答案。

让我们考虑一下这个初始设置。客户端按顺序向 server-1 发送多个请求。

server-1 正在执行一些计算密集型任务。因此,自动缩放器在一段时间后创建了另一个服务器实例,即 server-2。现在设置变成了这样。

根据我的理解,客户端-> server-1 连接已建立并保持活动状态。我们将此连接用于所有客户端-服务器通信。如何利用另一台服务器 - server-2 来共享一些这样的客户端请求。

否则它将是一个顺序处理。

我使用带有 rsocket 的弹簧靴。