世界播报:新一代通信协议—— RSocket

一、简介

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


(资料图片)

二、设计目标

支持对象传输,包括 Fire-and-Forget、Request/Response、Request/Stream、Channel

支持应用层流量控制

支持单连接双向、多次复用

支持连接修复

更好的使用WebSocket和Aeron协议

三、消息驱动

网络通信是异步的,RSocket 协议包含这一点,并将所有通信建模为在单个网络连接(TCP)上的、多路复用的消息流,在等待响应时从不同步阻塞。

响应式宣言指出:

反应式系统依赖异步的消息传递,从而确保了松耦合、隔离、位置透明的组件之间有着明确边界。这一边界还提供了将失败作为消息委托出去的手段。使用显式的消息传递,可以通过在系统中塑造并监视消息流队列, 并在必要时应用回压, 从而实现负载管理、 弹性以及流量控制。使用位置透明的消息传递作为通信的手段, 使得跨集群或者在单个主机中使用相同的结构成分和语义来管理失败成为了可能。非阻塞的通信使得接收者可以只在活动时才消耗资源, 从而减少系统开销。

此外,HTTP/2 FAQ 很好地解释了在持久连接上采用多路复用的面向消息的协议的动机:

HTTP/1.x 有一个叫做 “head-of-line blocking(队头阻塞)” 的问题,在这种情况下,即在一个连接上一次只能有一个未完成请求。

HTTP/1.1 试图通过流水线(Pipelining)来解决这个问题,但它并没有完全解决这个问题(大的或慢的响应仍然会阻塞后面的其他响应)。此外,人们发现流水线很难部署,因为许多代理和服务器不能正确地处理它。

在HTTP/1中使用并发连接和域名分片来缓解HOL问题

并发连接,浏览器针对每个源(域名)可以打开4-8个TCP连接,提升并发度。

域名分片,浏览器和HTTP/1限制了并发连接的数量,那么就把多个域名指向一台服务器,从而提升连接数量。

这迫使客户端使用一些启发式方法(通常是猜测)来确定什么请求在什么时候放在与源站的哪个连接上;由于加载一个页面的次数通常是可用连接数量的10倍或者更多。这会导致被阻塞的请求“瀑布式”的增长,从而严重的影响性能。

多路复用通过允许多个请求和响应消息在一个连接上同时传输来解决这些问题;甚至可以将一条消息的部分与另一条消息的部分混合在一起。

使用HTTP/1,浏览器为每个源打开4-8个连接,由于许多站点使用多个源,这可能意味着打开单个页面要加载30多个TCP连接。

一个应用程序同时打开如此多的连接,打破了TCP所建立的许多假设;由于每个连接都会在响应中传输大量的数据,因此TCP缓冲区很大可能会溢出,从而导致拥塞事件和超时重传。

一个应用程序同时打开如此多的连接,此外,使用如此多的连接不公平地垄断了网络资源,“窃取”了其他性能更好的应用程序(如VoIP)的资源。

四、Interaction Models(交互模型)

不合适的协议会增加系统开发的成本。它可能是一个不匹配的抽象,但是我们必须将系统设计强加到他允许的交互模型中。这迫使开发人员花费额外的时间来解决它的缺点,以处理错误并获得可接受的性能。在多语言环境中,这个问题被放大了,因为不同的语言将使用不同的方法来解决这个问题,这需要团队之间的额外协调。到目前为止,通信协议事实上的标准是HTTP,它只支持请求/响应的交互模式。在某些情况下,这可能不是最理想通信模型。

一个例子是推送通知。使用request/respones交互模型,客户端必须使用轮训不断检查服务端的状态。应用程序每秒执行大量的请求,只是为了轮询,然后被告知没有适合它们的东西。这对于客户端、服务器、网络来说是巨大的浪费。花费金钱;并增加了基础设施的规模、运营的复杂性,从而提高了可用性。它还通常会增加用户接收通知时的延迟,因为轮询会缩减到更长的间隔以试图降低成本。

出于这个和其他原因,RSocket不仅仅局限于一个交互模型。下面描述的各种支持的交互模型为系统设计提供了强大的新可能性:

4.1 Fire-and-Forget(即发即弃)

即发即弃是请求/响应的优化,在不需要响应时很有用。它允许显着的性能优化,不仅仅是通过跳过响应来节省网络使用,而且还可以减少客户端和服务器的处理时间,因为客户端不需要记录和等待请求关联的响应和取消请求。

此交互模型对于支持有损的用例非常有用,例如非关键事件日志记录。

可以这样使用:

FuturecompletionSignalOfSend=socketClient.fireAndForget(message);

4.2 Request/Response (single-response)(请求/响应(单响应))

仍然支持标准请求/响应语义,并且仍有望代表 RSocket 连接上的大多数请求。这些请求/响应交互可以被认为是优化的“只有 1 个响应的流”,并且是在单个连接上多路复用的异步消息。

消费者“等待”响应消息,所以它看起来像一个典型的请求/响应,但它从不同步阻塞。

可以这样使用:

Futureresponse=socketClient.requestResponse(requestPayload);

4.3 Request/Stream (multi-response, finite)(请求/流(多响应,有限))

从request/response延伸出来的是request/stream,它允许多条消息流回。将此视为“集合”或“列表”响应,但不是将所有数据作为单个响应返回,而是按顺序流回每个元素。

用例可能包括以下内容:

获取视频列表

在目录中获取产品

逐行检索文件

可以这样使用:

Publisherresponse=socketClient.requestStream(requestPayload);

4.4 Channel(通道)

通道是双向的,在两个方向上都有消息流。

受益于此交互模型的示例用例是:

客户端请求一个数据流,该数据流最初会破坏当前的世界视图

当发生变化时,增量/差异从服务器发送到客户端

客户端随时间更新订阅以添加/删除标准/主题/等。

如果没有双向通道,客户端将不得不取消初始请求,重新请求并从头开始接收所有数据,而不是仅仅更新订阅并有效地获取差异。

可以这样使用:

Publisheroutput=socketClient.requestChannel(Publisherinput);

五、协议形式

连接上传输的数据是流(Stream)

流(Stream)由帧(Frame)组成

帧(Frame)包含了元数据(MetaData)与业务数据(Data)

基于 RSocket 协议,我们的业务数据会被打包成帧,并以帧流的形式在客户端与服务端互相传输。所以 RSocket 的所有特性都是基于这个帧流实现的。协议详情可以参考:https://rsocket.io/about/protocol

RSocket是一个二进制协议,也就是说在一个RSocket连接上传输的消息体对数据格式没有任何要求,应用程序可以为所欲为的压缩数据量的大小。

这样的二进制协议通常来说能给性能带来极大的提升,但是产生的代价是,网络中间件也会因为无法解读消息体中的数据,丧失了在对具体应用流量进行监控,日志和路由的能力。RSocket通过把每个消息体分成data和metadata的方式,在保证高效传输的前提下,提供了暴露少量元数据给网络中间件的能力。

对于每个data和metadata,应用可以采用不同的序列化方法。

data一般作为应用本身需要传递的业务数据,采取自定义的高效序列化方式,且对网络基础设施不可见。

metadata可以采用网络基础设施一致默认的格式。在分布式传输的过程中,这些中间件可以按需求对metadata进行读写,然后监控应用健康状况或者调整路由。

六、RSocket与其它协议有什么区别?6.1 对比Http1.x

Http1.x只支持request/response,但是现实应用中并不是所有请求都需要有回应(Fire And Forget)、有的需求需要一个请求返回一个数据流(request/stream)、有的还需要双向数据传输(channel)。

6.2 对比Http2.x

http2.x不支持应用层流量控制、伪双向传输,即服务端push数据本质上还是对客户端请求的响应,而不是直接推送。RSocket做到了真正的双向传输,使得服务端可以调用客户端服务,使得服务端和客户端在角色上完全对等,即两边同时是Requester和Responder。

6.3 对比grpc

grpc需要依赖protobuf,本质上还是http2.x。RSocket不限制编解码,可以是xml、json、protobuf等。

性能上grpc要差一些:详见压测对比,https://dzone.com/articles/rsocket-vs-grpc-benchmark

6.4 对比TCP

一个应用层的协议、一个传输层的协议,其实两者不在一个层面,为啥要作比较呢,因为netty让tcp层的编程也很容易,但是需要自定义传输协议,比如定义header、body长度等等,用起来还是很麻烦的。

6.5 对比WebSockets

websocket不支持应用层流量控制,本质上也是一端请求另一端响应,不支持连接修复。

七、RSocket适用于哪些场景?

移动设备与服务器的连接

数据双向传输,且支持流量控制。支持背压,背压的意思:如果客户端请求服务端过快,那么服务端会堆积请求,最终耗光资源。有了背压机制,服务端可以根据自己的资源来控制客户端的请求速度,即调用客户端告诉它别发那么快。

支持连接修复,比如手机进地铁之后,网络断开一段时间,其他协议需要重新建立连接,RSocket则可以修复连接继续传输帧数据。

微服务场景

spring cloud目前支持的http协议,不能fire and forget、不能请求流数据、不能单连接双向调用;替换成RSocket之后可以满足以上需求的同时提高性能。且针对服务治理、负载均衡等RSocket都在慢慢完善。

由于微服务和移动设备的普及,RSocket火起来应该就是这几年的事儿,让我们拭目以待吧。


欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。

标签: 流量控制 应用程序 多路复用

上一篇 :

下一篇 :

世界播报:新一代通信协议—— RSocket

一、简介RSocket是一种二进制字节流传输协议,位于OSI模型中的5~6层,底层可以依赖TCP、WebSocket、Aero...

03-06 15:44:41

推理小说家-实时

1、约翰·迪克森·卡尔(JohnDicksonCarr,1906年11月30日—1977年2月27日),男,美籍推理

03-06 15:01:18

春季游黄山,常见问题解答丨在黄山,与美好相约吧|新要闻

春季游黄山,常见问题解答丨在黄山,与美好相约吧

03-06 13:00:14

全球视点!朱力亚最新状况_朱力亚死

1、应该没死吧前几天还在电视里看到他的报道。本文到此分享完毕,希望对大家有所帮助。

03-06 11:49:18

上海鲜肉月饼的做法_上海鲜肉月饼如何做-每日关注

欢迎观看本篇文章,小升来为大家解答以上问题。上海鲜肉月饼的做法,上海鲜肉月饼如何做很多人还不知道...

03-06 11:09:38

环球播报:成都市人民政府关于丰伟等5人职务任免的通知

成都市人民政府关于丰伟等5人职务任免的通知

03-06 09:56:20

前沿资讯!琼海旅游景点攻略

琼海主要旅游景点:博鳌东方文化苑、万泉河漂流、万泉河、白石岭、官塘温泉、红色娘子军雕像、金牛岭、...

03-06 08:25:42

0-0!本泽马进球被吹,皇马遭遇联赛两连平,落后巴萨已达9分 环球速读

0-0!本泽马进球被吹,皇马遭遇联赛两连平,落后巴萨已达9分,连平,皇马,巴萨,足球竞赛,波兰足球,法国足...

03-06 05:59:19

天天热文:奥林日记

1、奥林扎克,是变形金刚漫画作品中的角色,萨克巨人的儿子。2、萨克巨人在统一星云星后意图将部分权力...

03-06 05:15:01

生化武器_说一说生化武器的简介

夏弥来为大家解答以下的问题,生化武器,说一说生化武器的简介,现在让我们一起来看看吧!1、生化武器(...

03-06 00:43:40

兰卡威住宿

1、HJI住宿酒店位于兰卡威,是家1星级酒店。2、距离巨鹰广场打车6分钟,车程约4 9公里。本文到此结束,...

03-05 21:10:46

疏忽五笔怎么打字_疏忽_环球精选

今天小编肥嘟来为大家解答以上的问题。疏忽五笔怎么打字,疏忽相信很多小伙伴还不知道,现在让我们一起来...

03-05 20:05:57

鱼与熊掌不可兼得是什么冲突类型_鱼与熊掌不可兼得是什么意思

1、本文出自《孟子,告子上》。2、鱼,我所欲也;熊掌,亦我所欲也。3、二者不可得兼,舍鱼而取熊掌者也...

03-05 18:17:26

翡翠怎么鉴别真假优劣?翡翠怎么鉴定真假?_今日热搜

1、鉴别翡翠的方法:翡翠翡翠(jadeite),也称翡翠玉、翠玉、硬玉、缅甸玉,是玉的一种。翡翠是在地质...

03-05 16:50:26

旅行的意义歌词

《旅行的意义》填词:陈绮贞谱曲:陈绮贞演唱:陈绮贞你看过了许多美景,你看过了许多美女你迷失在地图...

03-05 15:07:01

微信小助手怎么用_微信小助手

1、你好~可以通过扫描微信二维码来添加,在空间或微博上看到某一朋友的二维码名片后,可以手机登录微信...

03-05 11:38:24

北冰洋袋淋_每日看点

1、小时候吃过的最好吃的冰激凌-北冰洋袋淋。2、粉色的冰激凌装入一个透明的袋子里。3、夏天每天就盼着...

03-05 09:57:05

天天观天下!巴厘岛在哪个国家

1、巴厘岛在印度尼西亚。2、巴厘岛,印度尼西亚岛屿,位于爪哇岛东部,面积5620平方公里,岛上热带植被...

03-05 08:33:10

腊月尾牙是什么意思_腊月尾牙的含义

欢迎观看本篇文章,小升来为大家解答以上问题。腊月尾牙是什么意思,腊月尾牙的含义很多人还不知道,现...

03-05 00:14:27

上火牙痛、牙齿怕冷热、牙龈萎缩,不光认真刷牙,还有这些方法!

生活中,大家一贯认为上火牙疼都会吃些止痛药或消炎药,牙齿松动了都会去医院拔牙,包括我也是这么认为...

03-04 17:49:19

仙三主题曲

1、《仙剑奇侠传三》主题曲是《生生世世爱》,《仙剑奇侠传三》是根据国产单机游戏《仙剑奇侠传三》改编...

03-04 15:59:29

手动挡开车的基本操作步骤有哪些

汽车现在已经越来越普及,基本上都快实现每家每户都有汽车了,那么汽车这么多的情况之下,我们在用车的...

03-04 12:13:12

2023带量采购新任务:三个层面加速品类扩围,体外诊断试剂联盟集采明确-天天快报

2023带量采购新任务:三个层面加速品类扩围,体外诊断试剂联盟集采明确  《通知》明确要求继续探索体...

03-04 11:14:21

山东省高水平运动队招收文化考试怎么参加?

(一)文化单独考试。获得国家一级运动员、运动健将、国际健将、武术武英级(或以上)称号之一的考生,文化...

03-04 07:44:08

【按需印刷】-双排键电子琴演奏的入门与提高_热点评

1、《【按需印刷】-双排键电子琴演奏的入门与提高》是中国戏剧出版社出版的图书。2、作者是韩露。文章到...

03-02 17:59:22

贵州黔西:春日喜收羊肚菌

贵州省黔西市谷里镇清明村150余亩羊肚菌陆续进入采收期,村民们忙着采收羊肚菌供应市场。去冬今春,黔西...

03-02 15:52:30

中元股份:3月1日获融资买入373.53万元,占当日流入资金比例20.73%

同花顺数据中心显示,中元股份3月1日获融资买入373 53万元,占当日买入金额的20 73%,当前融资余额2 ...

03-02 10:49:57

微信稽查是什么意思_稽查是什么意思 新消息

1、1、对象不同2、稽查是对于行政相对人,如税务稽查大队,一般负责偷税漏税,作出的是外部行政行为。监...

03-02 05:58:01

弟子不必不如师的如_弟子不必不如师

1、大意就是说,不必拘泥于师生之间的关系。2、每个人自由每个人的长处,所以说老师不必处处胜过弟子,...

03-02 05:11:59

爱奇艺CEO龚宇:限制投屏的决策有失误,《狂飙》的爆红是意外|世界热资讯

爱奇艺CEO龚宇:限制投屏的决策有失误,《狂飙》的爆红是意外

03-02 00:12:57

土俄外长在印度新德里举行会面

当地时间3月1日,土耳其外长恰武什奥卢在其个人社交账号上发布消息称,他与俄罗斯外长拉夫罗夫在二十国...

03-01 21:05:54

来电防火墙安卓版下载_安卓来电防火墙使用什么好

安卓防火墙使用介绍:360手机卫士:360手机卫士可以帮助你远离短信来电骚扰,保护隐私和通信安全,显示...

03-01 20:16:48

新版国家医保药品目录今起实施 每日看点

据央视新闻客户端报导,今起新版国家医保药品目录落地实施,各地参保群众就医购药时将适用新版目录的药...

03-01 19:01:16

世界快看:专访毛晓彤:甜只是我的一部分 更希望演酷飒的角色

搜狐娱乐:大家都知道你在《云襄传》演的是个很飒的女侠,尝试过这样的角色会有什么样的收获?毛晓彤:...

03-01 17:07:12

刘颖简介_刘盈简介

1、刘盈20岁时被迫娶其姐鲁元公主不到7岁的女儿张焉为妻。2、她空谷幽兰,遗世独立她一生没有得过皇帝的...

03-01 14:55:02

焦点播报:indonesia是哪个国家做nike

1、印尼:电压:230V(单相),380V(三相);频率:50Hz2、我国的标准是相电压380伏,线电压220

03-01 14:44:54

治疗失眠的最好方法_这三个方法真的推荐试一下

解答:1、放松疗法。2、压力、紧张和焦虑是诱发失眠的常见因素。放松疗法可以缓解上述因素造成的不良影...

03-01 13:00:34

海南:科技创新驱动自贸港高质量发展_热资讯

发挥“纬度”优势,首个全国商业发射场开工建设,海南省航天技术创新中心挂牌成立,将着眼国家战略、海...

03-01 10:46:22

dimine 最新资讯

1、dimine数字矿山软件系统是在中南大学古德生院士及王李管教授领导下、由中南大学数字矿山研究中心的矿...

03-01 09:29:55

未及时披露非公开发行事项中重要内容,东方电缆控股股东及实控人被上交所通报批评

东方电缆2月28日公告,上交所对公司控股股东宁波东方集团有限公司及实际控制人夏崇耀、袁黎雨予以通报批...

03-01 08:46:07

鹅怎么做才好吃?|世界速看

对于在东北农村长大的我,家里就像个动物园,爸妈养了鸡、鸭、鹅、狗、猪、驴、牛、鸽子、兔子 ...

03-01 05:51:44

环球即时:下载手机病毒查杀_查杀手机病毒软件

安卓优化大师的前身百度手机卫士,经过数次升级,演变成了今天的百度手机卫士。百度手机卫士是一款常用...

03-01 04:04:27

新潮能源董事会选举一波三折终落定 控制权纷争有望解决

2月28日,新潮能源发布公告称,2023年第二次临时股东大会13项议题全部获得通过。其中备受关注的是公司新...

03-01 00:56:49

QQ空间进不去了_QQ空间为什么进不去了`_全球热点

1、屌来!我这专家还没说都他吗的什么答案啊!那是你的浏览器的问题需要调整下浏览器的设置就行了!大姐...

02-28 21:52:06

天天快资讯丨哇!“警察叔叔”真的来啦

哇!“警察叔叔”真的来啦

02-28 19:03:30

梅西第七次荣膺“世界足球先生”-全球今亮点

中新社北京2月28日电北京时间2月28日,国际足联2022年度颁奖典礼在巴黎举行,阿根廷队队长梅西战胜姆巴...

02-28 16:58:49

环球热头条丨资产配置“压舱石”怎么选?这份债基投资秘诀不得不看

资产配置“压舱石”怎么选?这份债基投资秘诀不得不看,鹏华,偏债,债基,压舱石,qdii,投资秘诀,债券型基金

02-28 15:12:19

执牛耳的意思是什么_执牛耳是什么意思

1、1、执牛耳词目执牛耳发音zhíniúěr释义古代诸侯订立盟约,要割牛耳歃血,由主盟国的代表拿着盛牛耳

02-28 13:15:15

“春光”(64)|上游主题摄影征稿作品展——唐晓华作品

草长莺飞二月天,拂堤杨柳醉春烟。兔年春季在满目翠绿的花开时节徐徐走来,在温暖的春天里,摄影人迎来...

02-28 13:08:54

上海市消保委:106短信已成坑害消费者的工具

鞭牛士2月28日消息,据上海消保委消息,多年来,垃圾短信一直让消费者不堪其扰,其中106短信平台已经成...

02-28 11:02:10

焦点!服务群众不缺位,上门拍照暖民心
五分四裂是什么动物_四分五裂指什么动物
环球讯息:安阳钢铁:融资净偿还146.94万元,融资余额1.11亿元(02-27)
三菱“欧蓝德”完成蜕变,尺寸更大,首次融入概念车元素!
世界今日讯!精灵梦叶罗丽第九季_关于精灵梦叶罗丽第九季介绍
恋爱修罗场是什么意思_修罗场是什么意思_今日快看
不能让“摆拍视频”游走于灰色地带 全球时快讯
正方体展开图可粘贴_正方体展开图要有粘贴线的
宫寒都有哪些症状?_宫寒症状有哪些
68岁刘晓庆状态真好!穿锥子裤配花棉袄走机场,一点没有大妈样-世界快播报
↗26℃!气温即将“起飞”,福建啥时候入春?_天天微头条
沪指半日跌0.12% 化肥板块涨幅居前-速看料
【天天新视野】我的世界神奇宝贝飞天螳螂刷新地点_我的世界神奇宝贝飞天螳螂在哪抓
绿康生化2月27日打开涨停
马来西亚棕榈油早盘展望
傲娇与偏见
年收入超过多少需要补税_年收入超过多少需要补税
春季乡村百家宴 特色旅游促共富
今日讯!世界文学名著典藏·全译本:哈克贝利·费恩历险记
螺蛳粉只吃粉不喝汤热量?
【独家】今日时讯:巴布亚新几内亚发生6.3地震 日本北海道钏路近海地区发生6.1级地震
全球消息!校董
微凤往事
世界今热点:湖南耕地净增有望实现历史性突破
即时看!中华驼舞虻
英雄联盟电玩勇者什么时候上线_电玩勇者锐雯什么时候上架
中国家庭的投资理财模型|全球报资讯
C罗本场数据:半场完成帽子戏法,1粒进球被吹,评分9分
世界即时:“湘”当自觉自信自强丨古色+红色,绘就双峰发展春天
人生若只初相见梅子黄时雨
手绘长图|一块咸阳茯茶的诞生之旅-天天视讯
每日热闻!巴德:阿拉巴是防线领袖,拜仁放走他是个错误
中美物流会议-天天热文
来宾:回家种油茶啦!新造林每亩补贴2000元! 时讯
磁盘分区_说一说磁盘分区的简介|新消息
快消息!为你付出所有
如何把10进制数变为16进制_16进制怎么变10进制
美的空调型号报价表_美的空调型号
乖 听话!
矿工门将点球大战水瓶写满对手罚球习惯,球队官推:足球无小事_速讯
【全球热闻】新的2021年丰田卡罗拉掀背车特别版看到红色而不是黑色
每日速看!二龙山林场
世界微动态丨湖南省自然资源调查监测表彰暨技术联盟大会召开
世界观焦点:威海税务:送便民春风,舒企业创新发展之翼
批判与建构:马克思共同体思想研究
【独家焦点】内蒙古新井煤矿坍塌事故救援处置工作有序推进
国际油价23日显著上涨 布油涨2%
SK第聂伯罗0-0AEK拉纳卡,总分0-1被淘汰,佩格洛远射中框
手机百度怎么清除历史浏览记录_手机百度怎么清除历史浏览记录记录
广发银行:取消发行“23广发银行CD052”
x 广告
x 广告

Copyright ©  2015-2022 起点纤维网版权所有  备案号:皖ICP备2022009963号-12   联系邮箱: 39 60 29 14 2@qq.com