分布式计算编程模型之RPC(3)

在文章的开头部分曾经提到了Vinoski对于RPC的批评,他认为选择RPC的唯一原因在于开发者的舒适感。在提出这一说法几年之后,他提出了几个非常重要的论点:

IDL的阻抗失调:对基础类型进行映射可能比较简单,但复杂的类型是非常难以映射的。

可伸缩性:RPC范式本身并没有对缓冲提供任何支持,或是提出任何缓解高延迟的机制,它仍然以一种偏命令式的操作构建分布式应用。

REST:REST本身是一种很好的思想,它为管理分布式资源的问题提出了特别的应对方式。但大多数基于REST打造的框架都改变了这一抽象思想,仍然重复了这一问题。

分布式编程语言

当我们在谈到分布式编程语言时,多数开发者所想到的其实只是如何用一般性的编程语言去构建分布式系统。实际上,只要某种语言支持并发元素,并且能够打开一个网络套接字,那么就能够构建一个分布式系统。而真正的分布式编程语言为分布式特性提供了第一等的支持。像Go这样的语���更像是一种并发语言,它为并发提供了第一等的支持。虽然并发是分布式中的一个重要部分,但他们毕竟还是不同的主题。

Erlang则为分布式提供了第一等的支持,它虽然同样使用了RPC机制,但更倾向于在进程之间使用异步消息传递方式。受到这一设计优秀表达能力的激励,Distributed ProcessAkka等框架也随之出现,以提供Erlang风格的语义能力。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/bf9d994f4c06bc9f9b113ca77d3a89dc.html