这些天似乎有很多关于无服务器计算的炒作,我试图理解远程过程调用框架之间的主要区别是什么?
就我而言,这也是一回事。在其他机器上调用方法或函数。
发布于 2016-09-06 15:43:09
在基本方面,是的,这是一样的。你在用另一种资源的方式,他们的主人描述。
RPC是RFC 1831中定义的如何访问远程资源的协议之一。另一个协议是ie。肥皂。一般来说,RPC是相当古老的技术,RFC是在1995年出版的。
FaaS是“商业词汇”,通常用来“重塑”那些老东西,比如RPC和远程调用,因为现在的人们和公司都愿意购买aaS的任何东西。FaaS一般可以使用任何协议,甚至可以描述自己的协议。
使用取决于你的需要。如果您只需要连接您的两个服务或为集成第三方软件准备API,请使用RPC或其他标准。
发布于 2016-09-06 15:16:58
首先,关于“在别人的机器上调用一个方法或函数”--只有当您正在调用的服务是驻留在其他人机器上的标准服务时才能工作,或者是在其他人编写并碰巧运行在他们机器上的代码时才起作用。使用Serverless,您可以编写在其他人的机器群上运行的代码。
此外,对于您正在创建的服务(您自己的服务),您需要管理运行提供RPC服务的代码的服务器群。调用代码需要知道RPC服务运行的主机名或IP地址,如果它是一个队列,则需要管理某种类型的负载共享。您需要估计您在机队中需要多少服务器,并在不使用它时支付多余的费用,如果不够大,则需要处理这些问题。您需要管理服务器机群上为RPC提供服务的流程。你需要用一个持续的运送策略把它部署到舰队。
使用Serverless,您只需编写代码,附加触发器,并让“无服务器”服务管理和分配资源来运行它。(好吧,你还得管理CD策略!)
此外,RPC类似于一种类型的无服务器调用:直接调用,来自无服务器API。相反,无服务器调用可以绑定到云中的事件,例如存储到数据库或文件系统,或者队列中的队列数据。使用RPC,您需要编写代码来检测事件并调用RPC调用。使用Serverless,您可以配置它并让系统处理详细信息。
人们可能会反对“无服务器”这个术语,因为当然有一个服务器--但是它是一个服务器(或者实际上是一队服务器),你不需要知道或考虑,这就是这个名字的意义所在。
要获得一个很好的解释,请参见http://martinfowler.com/articles/serverless.html
https://serverfault.com/questions/801227
复制相似问题