Reactive的世界里,我们已经知道了从接收request(Spring WebFlux
)进来一路到DB(R2DBC
),这时候就只剩下最後一哩路,也就是服务之间的通讯协定RSocket
。
RSocket
是一个高效能且弹性的二进位通讯协定,由Facebook、Netflix、Alibaba、Pivotal等国际知名公司共同合作推出,RScoket
的R在这系列中提到,想当然就是Reactive的R,可以建立於不同的传输层包含TCP
、WebSocket
或是 Aero
n,在OSI
七层里面属於5/6层,在TPC/IP
则属於应用层。不限定特定语言,Java
、GO
、C++
与Javascript
等等都有支援,Java
适用於Reactor
、RxJava
。streaming的讯息(Message)传递模式,与传统非同步的一大区别就是支援backpressure
,不需要担心订阅者会被超出负荷的资料压垮。
1990s 大概是静态网路的时期
主流协议是TCP/IP
2000s 开始有client-server ,Server导向时期。
http 1.0
2010s Web 2.0
RESTful的架构
现今 云原生Cloud Native与微服务Microservices
Http/2 Http/3
MQTT gRPC
此时微服务兴起大致有以下需求
旧有的通讯协定已经无法应付所有使用场景,创造出RSocket来应付所有的云原生与微服物的使用场景
二进位的讯息,是机器最熟悉的方式,传输的过程更有效率且不容易出错,而且是可以把任意格式、像是熟悉的Json
、XML
等等转换成byte,接收的时候再转换回来即可。
Request Response :典型的HTTP,发送一个请求,得到一个回覆。
Request Fire-n-Forget:射後不理,用於监控或是log纪录,不在意回传结果。
Request Stream:一个request回应一个stream,类似於event-driven里面的MQ。
Request Channel:频道,可以互相推送message,像是即时通讯。
优点
缺点
相对於Reactor
、WebFlux
、R2DBC
,RSocket
又是一个更新的技术,想要更加了解RSocket
可能需要补一些网通相关的知识,这篇只是先简单介绍,後续会进行一些比较。官网的介绍影片蛮清楚的,推荐去看一下。
存稿宣布用尽,开始进入赶稿人生......
前言 今年算是拖到最後一天最後一刻才开赛... 因为疫情的关系今年实在有点忙不过来, 因此早在两个月...
前言 前面两天刻了两个 view, 现在要用 Navigation 来把它们连接起来。 实作 在 R...
Security Group 安全群组 Security group 是 AWS 网路安全的基础,它...
07 - Update gems & js 专案如果要长久,套件升级是一定是不可或缺的事,从...
这几天听到一个新名词,eTag,我想说这究竟是什麽东西,要上高速公路了吗?、还是什麽特别的tag呢?...