使用RSocket实现新REST服务协议

18-10-15 banq
                   

最近由于gRPC的噪音很多,人们开始质疑其优雅性,这篇文章也顺便黑了一把,gRPC在概念上与SOAP非常相似,只是它使用Protobuf而不是使用XML来定义服务。就像SOAP一样,它是URL和Header魔法的大杂烩 ,不过gRPC是与HTTP / 2死死绑定了。注意的是HTTP / 2是为Web浏览器设计的协议哦。

当将gRPC调用转换为REST调用时,需要通过代理转换,从而破坏了使用gRPC的目的。这突出了gRPC的设计不佳。

同样,REST的最大限制是它与HTTP相关联。REST是一种基于HTTP的黑客技术,经常使用REST的原因是它易于调试,因为它是“人类可读”。

我们想要的是一种专为服务到服务通信而设计的协议。使用专门为服务设计的协议可以相互通信,从而创建更简单,更可靠的应用程序。不存在任何黑客攻击,变通方法或阻抗不匹配。

开源RSocket专为服务而设计。它是一种面向连接的消息驱动协议,在应用程序级别具有内置流控制。它既可以在浏览器中同样使用,也可以在服务器上使用。这意味着您可以流式传输数据或执行Pub / Sub而无需设置应用程序队列。它也是二进制的。它对文本和二进制数据同样有效,并且对传输的内容负荷进行分段。

REST是一个不错的解决方案。但是在微服务领域变得没有意义了。分布式系统本身很难。我们需要做的最后一件事是使用它,而不是为它们设计的新东西来使它们更复杂。