欢迎访问优讯网!
您当前的位置:首页 > 爱编程

RSocket介绍 Http协议的替代者

时间:2019-10-08 08:10:37  来源:优讯网  作者:小卡司  浏览次数:

1. 简介

RSocket是一种二进制的点对点通信协议,是一种新的网络通信第七层协议。旨在用于分布式应用程序中。从这个意义上讲,RSocket是HTTP等其他协议的替代方案。它是一种基于Reactive Streams规范具有异步,背压的双向,多路复用,断线重连,基于消息等特性。它由Facebook,Netifi和Pivotal等工程师开发,提供Java,JavaScript,C ++和Kotlin等实现。

2. 背景

说到这里就有一些疑问了,为什么要搞这个协议?难道程序员吃饱了撑得搞点新东西折腾自己?上面提到了Reactive Streams规范。如果你对这个规范不熟悉就需要通过 https://felord.cn 补补课了。这是java领域新的响应式规范,Reactor 3 、RxJava 都是该规范的实现。webflux、hystrix 总听说过吧。java 9 也吸收了该规范的一些精华。也就是说我们现在可以实现网络通信上的响应式了。响应式一个重要的特性就是背压(backpressure)。http通信中服务端接收到过多的请求很容易会过载,严重时导致宕机。而通过背压处理可以选择性的响应请求来避免这种情况。还有http协议是无状态的,只要有请求不管是有效的还是无效的,是否是重复的,服务器都会进行处理直到完成。如果使用响应式一定程度会大大减少这些无意义的请求。有时候我们需要建立起长连接。就需要借助于Websocket来实现。如果使用RSocket就很容易建立连接双方的管道。还有其它非常多的场景这里不再一一列举。

3. 特性

其实上面也说明了一些RSocket的特性。这里简单总结一下:

  • 具有语言无关性的二进制通信协议
  • 异步非阻塞消息驱动通信,高性能
  • 实现了网络通信的背压处理,在此基础上进行流量控制、连接恢复
  • 天然支持双向通信
  • 更加适合分布式通信场景

4. RSocket四种交互模型

RSocket定义了四种交互模型来弥补Http协议的不足之处:

  • Fire-and-Forget:优化请求/响应,在不需要响应时非常有用,例如非关键事件日志记录。
  • Request/Response:类似Http的请求/响应模型 但是具有Http没有的优点,它是异步和多路复用的。
  • Request/Stream:单个请求可以接收多个响应。例如获取视频列表、获取目录中的产品
  • Channel: 该模型模型提供双向通信。在此模型中,消息流在两个方向上异步流动。例如发生更改时,从服务器向客户端发出增量/差异

5. 前景

随着响应式越来越被提及,RSocket在网络通信的前途是不可限量的。有众多诸如Facebook、Pivotal等一线大厂的背书。Spring framework最近的几次更新都特别对其进行了支持。知名rpc框架Dubbo从3开始也针对RSocket进行了适配。目前RSocket还处于候选版本,还没有正式版。相对资料较少。而且需要对Reactive Streams 规范熟悉。相对来说目前学习曲线还是比较陡峭的。不过我们获取可以从中借鉴一些解决问题的思路。

以上就是关于 RSocket介绍 Http协议的替代者 的全部内容了,喜欢的小伙伴别忘了点赞分享一下哦,关注优讯网,优讯有你更精彩!
转载自: https://my.oschina.net/10000000000/blog/3114116
版权归原作者所有,如有侵权请联系我们删除。

来顶一下
返回首页
返回首页
推荐资讯
计算机的正确使用姿势 电脑痴如何正确的使用电脑
计算机的正确使用姿势
好用的后台管理的前端框架模版H-ui H-ui框架模版分享
好用的后台管理的前端
微信电脑多开方法 无需辅助电脑版微信双开方法分享
微信电脑多开方法 无
Python实现网站百度主动推送 python实现主动推送网站地图
Python实现网站百度主
相关文章
栏目更新
栏目热门