Bog*_*lga -3 hl7-fhir spring-boot spring-messaging hapi-fhir rsocket
我最近开始了一系列关于使用FHIR资源的服务到服务通信的性能调查,以确定在以下方面花费的处理时间:
在调查过程中遇到了两个我不明白的结果,因此我需要RSocket开发团队的帮助。我将详细说明结果和问题。
为了找出最快的通信方式,我分析了使用两种传输协议的三种传输方式——HTTP 和 RSocket。更准确地说 - 我已经分析和基准测试:
@RestController使用RestTemplateWeb 客户端访问 Spring端点,使用 REST 通信交换字符串(序列化的 FHIR 资源)对前两种通信方法的分析产生了使用 HAPI REST 服务器交换 FHIR 资源与交换(原始)字符串有效载荷之间的巨大差异,包括将这些有效载荷反序列化为 FHIR 资源。更准确地说 - 对于大型 FHIR 资源,HAPI REST 服务器增加的开销大约是(原始)字符串通信和反序列化所带来的开销的 3-4 倍。
关于两个服务之间的 RSocket 通信 - 我尝试使用两种模式来交换 FHIR 资源:
第一种方法(使用原始字符串)产生的负载交换开销几乎与 HTTP(使用 REST)通信所产生的开销相似。更准确地说 - 通信开销比 HTTP 通信高几个百分比 (5-10%)。这让我感到惊讶,因为我认为 RSocket 通信开销将远低于 HTTP 通信——我至少看过一个 Spring & Netifi 演示,其中 RSocket 被宣传为“比 HTTP 快 10 倍”。
我的第一个想法是我在 RSocket 配置中做错了,因此我尝试了RSocketRequesterSpring bean 的各种配置更改,从零复制帧解码器的设置开始。但是,它们都没有在整体性能上取得任何显着的改进。
我的下一个尝试是通过实现 RSocket 编码器和解码器类来交换 FHIR 资源,从而在服务之间交换原始 FHIR 资源。在对 RSocket 编码器和解码器接口的实现进行了一些努力之后,我设法在两个服务之间交换了 FHIR 资源。问题 - FHIR 资源通信的性能非常低,远低于String交换的性能。
对于很长的介绍/上下文设置,我的问题/帮助请求是:我在分析中做错了什么和/或遗漏了什么,以至于我没有获得 RSocket 承诺的性能优势?
我在这个Github 存储库中包含了两个示例项目(一个 RSocket 请求者和一个响应者)。最相关的类是RSocket 配置和 FHIR Bundle 编码器和解码器。
免责声明:我知道在Netifi 社区页面上可以更好地解决这个问题。在过去的几天中,该页面不再可访问,因此在此处发布了这篇长文。
先感谢您。
RSocket 维护者在这里。
简单地看一下配置,我可能会说基准测试的形成不恰当,显然会给出不正确的结果。
我可以直接说的是,在这一点你调用readBundle方法,订阅到requesterMono每次执行远程调用,基本上打开新的TCP连接上的每个订阅。
这意味着您实现的行为与标准 Http 1.0 行为完全相同(这就是您看到相同结果的原因)。
作为实现正确设置的第一步,我建议您缓存您的Mono<RSocketRequester>,以便为所有调用重用相同的连接。
@Bean
public Mono<RSocketRequester> requester(BundleDecoder bundleDecoder, IntegerEncoder integerEncoder) {
final RSocketStrategies.Builder builder = RSocketStrategies.builder()
.decoder(bundleDecoder)
.encoder(integerEncoder);
return RSocketRequester.builder()
.rsocketFactory(factory -> factory.dataMimeType(MediaType.APPLICATION_CBOR_VALUE)
.frameDecoder(PayloadDecoder.ZERO_COPY))
.rsocketStrategies(builder.build())
.connectTcp(responderHost, responderPort)
.retry()
.cache();
}
Run Code Online (Sandbox Code Playgroud)
除此之外,我可能会建议您查看它的用法,LoadBalancedRSocket它可以让您有效地为大量调用重用几个连接-> https://github.com/OlegDokuka/rsocket-issue-717
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |