我最近遇到了一个术语“反应式套接字”。到目前为止,我一直认为 websockets 是完全成熟的异步风格的方式。
那么什么是反应式套接字。
这个链接 ( http://rsocket.io/ ) 甚至谈到了 websockets 的比较。
我最近遇到了一个术语“反应式套接字”。到目前为止,我一直认为 websockets 是完全成熟的异步风格的方式。
那么什么是反应式套接字。
这个链接 ( http://rsocket.io/ ) 甚至谈到了 websockets 的比较。
RSocket在网络边界上实现Reactive Streams规范。它是一种应用程序级通信协议,具有内置的框架、会话恢复和背压功能,可在网络上运行。
RSocket 与传输无关。RSocket 可以在 Websockets、TCP、HTTP/2 和 Aeron 上运行。
Websockets 不提供应用程序级背压,仅提供基于 TCP 的字节级背压。Websockets 也只提供框架,它们不提供应用程序语义。由开发人员来构建与 websocket 交互的应用程序协议。
RSocket 提供框架、应用程序语义、应用程序级背压,并且它不依赖于特定的传输。
有关创建 RSocket 背后的动机的更多信息,请查看 RSocket 网站上的动机文档。
WebSocket 和 RSocket 都是具有双向、多路、双工通信的协议。但两者都在不同的层次上工作。
WebSocket 是一种基于 TCP 的底层通信协议。它定义了如何将字节流转换为帧。但是 WebSocket 消息本身并没有关于如何路由或处理它的说明。因此,我们需要在 websocket 之上运行的消息协议,在应用程序级别,以实现双向通信。
RSocket是一种完全反应式的应用程序级协议,它运行在 TCP、WebSocket、UDP 或其他字节流传输上。它提供对网络的应用程序流控制,以防止中断并提高弹性。RSocket 采用了具有非阻塞背压的异步流处理的思想,其中发生故障的组件不会简单地丢弃流量,而是将其压力传达给上游组件,让它们减少负载。