Spring Boot与RSocket实现高效实时数据通信

Spring Boot中集成RSocket实现面向服务的通信 通过以上步骤,我们成功地在Spring Boot项目中集成了RSocket,并实现了一个简单的请求-响应通信模型。RSocket不仅可以用于简单的请求-响应,还支持更复杂的通信模式,如请求-流、单向发送和通道。在实际项目中,RSocket可以显著提升服务间通信的效率,特别是在高并发和低延迟的场景下。RSocket作为一种新兴的通信协议,提供了更高效的点对点通信机制,尤其适用于微服务架构中的实时数据流传输和反应式编程模式。首先,创建一个新的Spring Boot项目,并在。 阅读详情

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。

 推荐订阅精彩专栏 👇🏻 避免错过下次更新

Springboot项目精选实战案例

更多项目:优快云主页YAML墨韵

学如逆水行舟,不进则退。学习如赶路,不能慢一步。

目录

 推荐文章

1. 概述

2. 协议简介

Connecting

发出请求(Making Requests)

消息格式

3. 应用场景

4. 实战案例

依赖配置

客户端消息处理模板类

4.1 Request-Response模式

服务端

客户端

消息发送

运行结果

4.2 Request-Stream模式

服务端

客户端

运行结果

4.3 Channel

服务端

客户端

运行结果

4.4 Fire-and-Forget

服务端

客户端

运行结果


 推荐文章

使用RabbitMQ消息队列和Redis缓存优化Spring Boot秒杀功能

Spring Boot + 支付宝支付:一站式集成指南

Spring Boot整合Elasticsearch

Spring Boot与RabbitMQ整合:实现高可用消息队列服务

Spring Boot携手OAuth2.0,轻松实现微信扫码登录!

快速上手Spring Boot与Mybatis Plus集成

《布隆过滤器:原理、应用与使用方法深度解析》

《深度解析:Redis缓存穿透、击穿与雪崩的区别及应对策略》

Spring框架九大核心功能全面揭秘(一)

权威解析Spring框架九大核心功能(续篇):专业深度,不容错过

Spring框架九大核心功能全面解读(三):探寻功能之巅

揭秘Spring Boot中@Transactional注解失效的七大坑点与修复之道

RabbitMQ Spring Boot 配置与使用指南

Spring Boot集成RabbitMQ实现消息队列生产者与消费者


1. 概述

RSocket 是一种二进制协议,可用于 TCP、WebSockets 和 Aeron 等字节流传输的应用协议,具有以下交互模型:

  • Request-Response:    发送一条信息,接收一条信息。

  • Request-Stream:       发送一条消息并接收返回的消息流。

  • Channel:                双向发送消息流。

  • Fire-and-Forget:     发送单向消息。

一旦建立了初始连接,“客户端”与“服务器”之间的区别就消失了,因为两端变得对称,每一端都可以发起上述交互之一。这就是为什么在协议中称参与端的为“请求者”和“响应者”,而上述交互称为“请求流”或简单地称为“请求”。

RSocket 协议的主要特点和优势:

  • 跨网络边界的响应式流语义——对于流请求,如请求流和通道,背压信号在请求者和响应者之间传递,允许请求者在源端减慢响应者的速度,从而减少对网络层拥塞控制的依赖,以及在网络层或任何层缓冲的需要。

  • 请求节流(Request throttling)——这个特性被命名为“租赁”(LEASE),以从两端发送的租赁帧命名,用于限制给定时间内另一端允许的请求总数。租约是定期更新的。

  • 会话恢复——这是为连接丢失而设计的,需要维护一些状态。状态管理对应用程序是透明的,并与背压相结合,可以在可能的情况下停止生产者并减少所需的状态量。

  • 大消息的碎片化和重组。

  • 保活(心跳)。

在Java中基于 Project Reactor 和用于传输的 Reactor Netty 构建。

2. 协议简介

Connecting

最初,客户端通过 TCP 或 WebSocket 等低级流传输方式连接服务器,并向服务器发送 SETUP 帧,以设置连接参数。服务器可能会拒绝 SETUP 帧,但一般情况下,在发送(客户端)和接收(服务器)SETUP 帧后,双方都可以开始发出请求,除非 SETUP 表示使用租用语义来限制请求数量,在这种情况下,双方都必须等待另一端发出 LEASE 帧才能允许发出请求。

发出请求(Making Requests)

建立连接后,双方可通过 REQUEST_RESPONSE、REQUEST_STREAM、REQUEST_CHANNEL 或 REQUEST_FNF 帧之一发起请求。每个帧都会从请求者向响应者发送一条信息。然后,响应者可以返回带有响应信息的 PAYLOAD 帧,而在 REQUEST_CHANNEL 的情况下,请求者也可以发送带有更多请求信息的 PAYLOAD 帧。

当一个请求涉及到诸如request - stream和Channel这样的消息流时,响应者必须遵守来自请求者的需求信号。需求表示为若干消息。初始需求在REQUEST_STREAM和REQUEST_CHANNEL帧中指定。后续的请求通过REQUEST_N帧发出。

每一端也可以通过METADATA_PUSH帧发送元数据通知,这些元数据通知不属于任何单独的请求,而是属于整个连接。

消息格式

RSocket 消息包含数据和元数据。元数据可用于发送路由、安全令牌等。数据和元数据可以有不同的格式。每种格式的 MIME 类型都在设置框架中声明,并适用于给定连接上的所有请求。

虽然所有报文都可以包含元数据,但路由等元数据通常是按请求提供的,因此只包含在请求的第一条报文中,即 REQUEST_RESPONSE、REQUEST_STREAM、REQUEST_CHANNEL 或 REQUEST_FNF 框架之一。

3. 应用场景

  1. 游戏开发:游戏需要实时、低延迟的通信,以提供更好的用户体验。RSocket提供了一种可靠、高效的通信方式,可以在不同的游戏组件之间进行通信,例如服务器和客户端之间的通信,或者客户端与客户端之间的通信。

  2. 实时流媒体:实时流媒体应用需要将大量的数据从服务器传输到客户端,并且需要保证数据的实时性和稳定性。RSocket提供了一种可靠的数据传输方式,可以保证数据的有序性和完整性。

  3. 物联网(IoT):物联网设备需要通过网络进行通信,以实现设备的远程控制和数据采集。RSocket可以用于建立可靠、高效的连接,使得设备可以快速地传输和接收数据。

  4. 分布式系统:分布式系统需要将不同的组件连接在一起,以实现协同工作。RSocket提供了一种可靠、高效的通信方式,可以用于在不同的组件之间进行通信。

  5. 实时数据分析:实时数据分析需要对大量的数据进行实时处理和分析。RSocket可以用于将数据从数据源传输到处理节点,并保证数据的实时性和完整性。

4. 实战案例

案例会分别演示RSocket的4种交换模式。

依赖配置

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-rsocket</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

新建两个项目,如下:

服务端配置

spring:
  rsocket:
    server:
      port: 9898
      transport: tcp

客户端消息处理模板类

@Service
public class PackRSocketService {
  private final RSocketRequester rsocketRequester;
  public PackRSocketService(RSocketRequester.Builder rsocketRequesterBuilder) {
    this.rsocketRequester = rsocketRequesterBuilder.tcp("localhost", 9898) ;
  }
}

接下来就会基于上面的配置进行各种交互模式的演示。

4.1 Request-Response模式

服务端
@MessageMapping("message")
public Mono<String> handleMessage(Mono<String> message) {
    return message.doOnNext(msg -> {
      System.out.printf("接收到消息:%s%n", msg) ;
    }).map(msg -> "服务器成功收到了你的消息!!!") ;
}
客户端
// Request-Response 发送一条信息,接收一条信息。
public void sendMessage(String body) {
   this.rsocketRequester
     .route("message")
     .data(body)
     .retrieveMono(String.class)
     .subscribe(System.out::println) ;
}
消息发送
@GetMapping("/message")
public Object message() {
  pss.sendMessage(String.valueOf(System.nanoTime())) ;
  return "message" ;
}
运行结果

4.2 Request-Stream模式

服务端
// 必须返回Flux
@MessageMapping("stream")
public Flux<String> handleStream() {
  return Flux
      .interval(Duration.ofSeconds(2))
      // 随机生成
      .map(i -> String.valueOf(new Random().nextInt(10000000)))
      // 只在此通道中获取10个值
      .take(10)
      .doOnComplete(() -> {
        System.out.println("completed...") ;
      }) ;
}
客户端
// Request-Stream 发送一条消息并接收返回的消息流。
public void sendStream() {
  this.rsocketRequester
    .route("stream")
    .retrieveFlux(String.class)
    .subscribe(ret -> {
      System.out.printf("%s - 接受到数据: %s%n", Thread.currentThread().getName(), ret) ;
    }) ;
}
运行结果

4.3 Channel

服务端
@MessageMapping("channel")
public Flux<String> handleChannel(Flux<String> datas) {
  return datas.doOnNext(ret -> {
    System.out.printf("【server】%s - 接收到数据: %s%n", Thread.currentThread().getName(), ret) ;
  }).map(ret -> {
    return ret + " - " + new Random().nextInt(1000) ;
  }) ;
}
客户端
// Channel 双向发送消息流。
public void sendChannel() {
  this.rsocketRequester
    .route("channel")
    .data(Flux.just("1", "2", "3", "4", "5", "6").delayElements(Duration.ofSeconds(1)))
    .retrieveFlux(String.class)
    .subscribe(ret -> {
      System.out.printf("【client】%s - 接受到数据: %s%n", Thread.currentThread().getName(), ret) ;
    }) ;
}
运行结果

4.4 Fire-and-Forget

服务端
@MessageMapping("faf")
public Mono<Void> handleFireAndForget(Mono<String> data) {
  return data.doOnNext(ret -> {
    System.out.printf("【server】%s - 接收到数据: %s%n", Thread.currentThread().getName(), ret) ;
  }).then() ;
}
客户端
// Fire-and-Forget 发送单向消息。
public void sendFireAndForget() {
  this.rsocketRequester
    .route("faf")
    .data(Mono.just(String.valueOf(new Random().nextInt(1000))))
    .send()
    .subscribe() ;
}
运行结果

总结:选择RSocket还是HTTP作为微服务间通信方式需要根据具体的业务场景和需求进行综合考虑。如果对性能、低延迟和双向通信有较高要求,RSocket可能更适合;如果对成熟度、简单性和跨平台性,HTTP可能更适合。

使用 RSocket 在 Java 中建立连接 在本文中,我们将探讨如何在 Java 中使用 RSocket 建立连接,并提供相应的源代码示例。你可以根据自己的需求扩展和定制 RSocket 的功能,并使用其他 RSocket 提供的请求模式来实现更复杂的通信场景。最后,我们需要在客户端代码中添加发送请求和处理响应的逻辑。在上述代码中,我们创建了一个 RSocket 客户端,它将连接到指定的主机和端口。你可以在客户端代码中添加发送请求并处理响应的逻辑。在上述代码中,我们创建了一个 RSocket 服务器,它将监听本地主机的 8000 端口。 阅读详情

相关推荐

Spring Boot×RSocket:5分钟搭建高性能通信,解锁微服务的闪电速度之谜?

Spring Boot与RSocket的结合,不仅是一场技术的碰撞,更是一次通信效率的飞跃。它们携手,让数据在微服务间飞速流动,反应式编程的加入,让这一切更加灵活、高效。现在,你已掌握了这门技艺,去构建你的高速通信网络,让信息传递如闪电般快捷,构建更强大的应用系统吧!

java专栏 497

一篇文章了解RSocket协议

RSocket是一个类似于HTTP的通讯协议。在了解Rsocket协议之前,先简单介绍下HTTP协议。 之所以推出springboot的技术,一个原因是因为前后端设计的分离。因为基于HTTP协议可以直接返回REST数据内容。 REST是一个简单且容易使用的异构处理架构,REST对于浏览器有这非常好的支持,同时也便于开发者进行测试。然而,当前所采用的REST架构大多是基于HTTP/1.1协议实现的,它存着这如下的问题。 HTTP简介 HTTP/1.1采用的是重文本传输,在某些场景下会给微服务带来巨.

pshdhx的博客 3974

毫米波与太赫兹:十射线模型建模

Pt=1,只考虑地面和前后两面墙的反射,反射系数为0.7。用matlab设计程序并实现该功能。,总计考虑10条路径,求出接收功率随。

SupermarketX的博客 785

spring响应式编程13 RSocket:一种新的高性能网络通信协议

前面几讲我们讨论了如何使用 WebFlux 构建响应式 Web 服务的实现方案。WebFlux 和 WebMVC 一样,都是基于 HTTP 协议实现请求-响应式的交互方式。这种交互方案很简单,但不够灵活,也无法应对所有的响应式应用场景。那么,有没有在网络协议层上提供更加丰富的交互方式呢?答案是肯定的,那就是我们今天要讨论的 RSocket 协议。这一讲,我将从 RSocket 协议的特性、交互模式以及与主流开发框架之间的集成等几个方面来和你讨论,相信学完之后,你就会发现。

sucaiwa的博客 1734

实测|龙虾机器人(OpenClaw)Windows系统部署全攻略(含避坑指南)

先简单科普下:龙虾机器人本质是一款开源AI代理框架,核心优势是“能行动、可本地、高灵活”——它不内置大模型,需要对接第三方AI接口(如GPT、Claude、阿里云百炼等),但能将AI的指令转化为实际的系统操作,相当于给AI配了一个“能动手的身体”,这也是它和普通对话大模型的核心区别。今天就结合自己的实测经历,从环境准备、分步部署、初始化配置,到常见问题排查,写一篇保姆级攻略,不管是新手还是有一定技术基础的同学,都能跟着一步步完成部署,少走弯路~解决方案:检查聊天软件插件是否安装成功,权限是否配置完整;

wohaiweifaju的博客 1万+

水下井口装置及钻杆建模

内容:海上油气资源开采的过程中,通常会由海上钻井平台下入钻杆连接到海底井口装置。OrcaFlex软件可进行各种海洋工程结构动态分析,通过各项数据的输入,能够很方便地进行水下井口装置及钻杆建模。直接使用软件New Line及new vessel功能,再设置模型的各项参数(几何属性、弯曲刚度、轴线刚度、扭转刚度、泊松比等)即可建成井口装置及钻杆模型。 设置管线的几何属性:主要包括管线的内外径、壁厚、...

s0302017的博客 1145

整合RSocket实时数据通信

服务器可能会拒绝 SETUP 帧,但一般情况下,在发送(客户端)和接收(服务器)SETUP 帧后,双方都可以开始发出请求,除非 SETUP 表示使用租用语义来限制请求数量,在这种情况下,双方都必须等待另一端发出 LEASE 帧才能允许发出请求。虽然所有报文都可以包含元数据,但路由等元数据通常是按请求提供的,因此只包含在请求的第一条报文中,即 REQUEST_RESPONSE、REQUEST_STREAM、REQUEST_CHANNEL 或 REQUEST_FNF 框架之一。数据和元数据可以有不同的格式。

330553352的专栏 1606

Python 爬虫实战:爬取去哪儿网酒店评价,提取住宿体验关键词

本文介绍了基于去哪儿网酒店评价数据的爬取与分析方法。首先通过分析网页结构和数据加载机制,定位到评价数据的JSON接口及关键参数。然后使用Python搭建爬虫环境,实现多页评价数据的批量采集与存储,并通过反爬策略确保数据获取的稳定性。在文本分析环节,采用jieba分词和TF-IDF算法提取高频关键词,结合词云可视化展示用户关注点。分析结果显示位置、服务、卫生是核心关注维度,同时识别出好评与差评的关键驱动因素。该方法为酒店服务优化和消费者决策提供了数据支持,并可通过扩展实现更深入的情感分析和竞品对比。

2503_91057718的博客 999

Spring Boot 3 新特性 @RSocketExchange:轻松实现实时消息推送的全方位指南

基础概念与简介是 Spring Boot 3 中新增的注解,用于简化基于 RSocket 协议的服务端与客户端通信的编程模型。它通过注解驱动的方式,使开发者能够更高效地定义和使用 RSocket 的功能,类似于 Spring MVC 中的或。将 RSocket 请求与方法映射关联起来。适用于 RSocket 的请求-响应、请求-流、双向通信等模式。减少样板代码,提升开发效率。

hello.reader 2015

【2024/3/12 更新】Windows Server 2019 服务配置与管理汇总

本栏目一共介绍了17种Windows Server 2019 的服务配置与管理,为了方便大家阅读理解,特意总结了17种服务的一些内容。具体说明如下所示

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 2万+

PostgreSQL 实战:行级安全策略(RLS)详解

PostgreSQL的行级安全(RLS)机制实现了细粒度的数据访问控制,通过动态过滤行数据满足多租户隔离、隐私保护等需求。本文系统介绍了RLS的核心原理、配置方法及实践建议:1) 启用RLS后需定义策略,通过USING和WITH CHECK条件控制访问;2) 适用于SaaS、医疗金融等场景,但需注意COPY命令、外键等特殊情况;3) 建议配合会话变量、索引优化和文档化策略使用。文章还提供了多租户隔离等实战案例,并分析了RLS对查询性能的影响及优化方案。RLS将安全控制下沉至数据库层,显著提升应用安全性和可维

数据知道的博客 3153

rsocket-java 高效的服务间通讯

将此视为“集合”或“列表”响应,但不是将所有数据作为单个响应返回,而是每个元素按顺序流式传输回来。即发即弃是一种请求/响应的优化,在不需要响应时非常有用。它可以实现显着的性能优化,不仅可以通过跳过响应来节省网络使用量,还可以节省客户端和服务器的处理时间,因为不需要记录来等待和关联响应或取消请求。这些请求/响应交互可以被视为优化的“只有 1 个响应的流”,并且是通过单个连接复用的异步消息。消费者“等待”响应消息,因此它看起来像典型的请求/响应,但其底层从不同步阻塞。通道是双向的,在两个方向上都有消息流。

Aesop的博客 1012

大模型的应用与微调:如何调用 LLM?从 OpenAI API 到本地部署

本篇文章介绍了如何调用 OpenAI、DeepSeek、Manus、通义千问等大模型 API,并探讨了 LLM 本地部署的方法。在实际应用中,可以根据需求选择云端 API 或本地化部署方案,以满足不同的计算需求和隐私要求。下一篇:大模型微调与 RAG 技术(LoRA、QLoRA、向量数据库)

晴天彩虹雨的博客 1157

新一代通信协议—— RSocket

RSocket 是一种二进制字节流传输协议,位于 OSI 模型中的5~6层,底层可以依赖 TCP、WebSocket、Aeron 协议。最初由 Netflix 开发,支持 Reactive Streams。其开发背后的动机是用开销更少的协议取代超文本传输协议(HTTP),HTTP 协议对于许多任务(如微服务通信)来说效率低下。

riemann_的博客 3860

MFC实现简单UDP通信(附完整源码)

MFC实现简单UDP通信(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1111

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

RSocket协议初识(一)

前言 前几天无聊翻SpringBoot官方文档,无意中发现文档中增加了一个章节叫RSocket协议的鬼东西,遂研究了一下。 RSocket是什么? RSocket是一种二进制字节流传输协议,位于OSI模型中的5~6层,底层可以依赖TCP、WebSocket、Aeron协议。 RSocket设计目标是什么? 1、支持对象传输,包括request\response、request\stream、fir...

后厂村老司机 2588

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

响应式编程之网络新约:RSocket

响应式reactive是Java中高效应用的下一个前沿,但它目前主要有两个障碍:数据访问和网络。RSocket是一种新的第7层语言无关的应用网络协议(解决后者),它由Facebook,Netifi和Pivotal等工程师开发,提供Java,JavaScript,C ++和Kotlin等实现,RSocket与Servlet并不是同类的产品。 RSocket RSocket RSocket是一个二...

布道 2万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RSocket vs WebSocket:Spring Boot 3.3 中的两大实时通信利器

与传统的请求/响应模式不同,RSocket 支持请求-响应、请求-流、流-流等多种模式,从而在微服务和流式数据传输中表现得更加灵活和高效。RSocket 的优势在于它可以在 TCP、WebSocket 等多种传输协议上运行,支持背压机制和多路复用,从而避免了资源的浪费,并保证了消息传递的可靠性。相较于传统的 HTTP 请求-响应模型,WebSocket 是全双工通信,即服务器可以实时向客户端推送数据,而不需要等待客户端发起请求,尤其适合实时数据更新场景。来定义接收和处理客户端消息的方法。

1318

Spring Boot中使用RSocket

1. 概述 RSocket应用层协议支持 Reactive Streams语义, 例如:用RSocket作为HTTP的一种替代方案。在本教程中, 我们将看到RSocket用在spring boot中,特别是spring boot 如何帮助抽象出更低级别的RSocket API。 2. 依赖 让我们从添加spring-boot-starter-rsocket依赖开始: <dependency&...

weixin_33827731的博客 1103

云原生实践之 RSocket 从入门到落地:Servlet vs RSocket

©Robert Ruggiero技术实践的作用在于:除了用于构建业务,也是为了验证某项技术或框架是否值得大规模推广。本期开始,我们推出《RSocket 从入门到落地》系...

阿里巴巴中间件 783

springboot学习(四十) springboot下rsocket的使用

RSocket RSocket是一个二进制的协议,以异步消息的方式提供4种对等的交互模型,以字节流的方式运行在TCP, WebSockets, Aeron等传输层之上。RSocket专门设计用于与Reactive风格应用配合使用,这些应用程序基本上是非阻塞的,并且通常(但不总是)与异步行为配对。它是传输无关的,支持 TCP、WebSocket和Aeron UDP协议,并支持无语义损失的混合传输协议——回压和流量控制仍然有效。 它还支持连接恢复。当你建立 RSocket 连接时,你可以指定前一个连接的 ID.

文若书生的专栏 1522

Springboot2.2.6中的RSocket使用, RSocket 进行反应式数据传输

在微服务架构中,不同服务之间通过应用协议进行数据传输。典型的传输方式包括基于 HTTP 协议的 REST 或 SOAP API 和基于 TCP 字节流的 gRPC 等。HTTP 协议的优势在于其广泛的适用性,有非常多的服务器和客户端实现的支持,但 HTTP 协议本身比较简单,只支持请求-响应模式。gRPC 等基于 TCP 的协议使用二进制字节流传输,保证了传输的效率。不过 gRPC 基于 HTTP/2,不支持其他传输层实现。HTTP/2 协议使用了二进制字节流,但是并没有改变 HTTP/1 协议已有的语义,

liinux-Talk is cheap,show me the code. 3982

Spring Boot对RSocket的支持

Spring Boot对RSocket的支持

听海边涛声 1110

Spring Boot与RSocket的集成

它支持多种通信模式,如请求-响应、请求-流、发布-订阅和双向流,比传统的HTTP通信更加灵活和高效。本文介绍了如何在Spring Boot中集成RSocket,并通过一个简单的示例演示了RSocket的基本用法和优势。RSocket作为一种现代化的异步通信协议,能够有效地解决微服务架构中的通信问题,为开发者提供了更加灵活和高效的选择。在使用RSocket时,需要注意安全性和性能问题。大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!

微赚淘客开发者博客 861

彻底搞懂 RSocket 协议

我们知道,常见的 RESTful Web 服务采用的都是基于 HTTP 协议实现的请求 - 响应式交互方式。这种交互方案很简单,但是因为只支持单一的交互方式,也就无法应对所有日常开发需求场景,例如服务端主动向客户端推送数据。请求 - 响应模式那么,能不能在网络协议层上具备更加丰富的交互方式呢?答案是肯定的,这就是我们今天要讨论的 RSocket 协议。RSocket 协议提供了多种客户端和服务端之间的交互方式,它并不是对 HTTP 协议的补充,而是一个基于响应式编程技术的全新的、高性能网络通讯协议。在引入

fuladulu的博客 677

SpringBoot 官方文档示例(76):使用RSocket

boot

amadeus_liu2的博客 600
上一篇: 用户体验至上的Spring Boot博客系统
下一篇: Element-UI快速入门
Yaml墨韵
博客等级 码龄5年 3805粉丝 237原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yaml墨韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值