现在似乎有很多关于无服务器计算的炒作,我试图理解远程过程调用框架之间的主要区别是什么?
就我而言,这是一回事。 你在别人的机器上调用一个方法或函数。
在基本的方式是,它是一样的。 你正在使用一些其他资源的方式,他们所有者描述。
RPC是您如何访问RFC 1831中定义的远程资源的协议之一。另一个协议是ie。 肥皂。 一般来说RPC是很老的技术,RFC是在1995年发布的。
FaaS是“商业词汇”,用于对RPC等常规电话和远程电话进行“重塑”,因为今天的人们和公司都愿意购买任何东西。 FaaS通常可以使用任何协议,甚至可以描述自己的协议。
使用取决于您的需求。 如果您只需连接两个服务或准备用于第三方软件集成的API,请使用RPC或其他标准。
首先,关于“在别人的机器上调用某个方法或function” – 只有在您所调用的服务是驻留在其他人的机器上的标准服务时才有效,或者其他人在其机器上运行的代码。 使用无服务器, 您可以编写在其他人的机器上运行的代码。
此外,使用RPC创build的服务(您自己的服务),您需要pipe理运行提供RPC服务的代码的服务器队列。 调用代码需要知道运行RPC服务的主机名或IP地址,如果是一个队列,则需要pipe理某种types的负载共享。 您需要估算车队需要多less台服务器,并在不使用时支付多余的费用,或者处理不够大的问题。 您需要pipe理服务器机群上RPC的进程。 您需要使用持续交付策略将其部署到车队。
使用无服务器,您只需编写代码,附加触发器,并让“无服务器”服务pipe理和分配资源来运行它。 (好的,你还是要pipe理CD策略!)
此外,RPC类似于只有一种types的无服务器调用:直接的,从无服务器的API。 相比之下,无服务器调用可以与云中的事件绑定,例如存储到数据库或文件系统或排队队列中的数据。 使用RPC,您需要编写代码来检测事件并调用RPC调用。 使用无服务器,您可以configuration它,让系统处理细节。
有人可能会反对术语“无服务器”,因为当然有一个服务器 – 但它是一个你不需要知道或考虑的服务器(或实际上是一个服务器),这就是名称。
有关一个很好的解释,请参阅http://martinfowler.com/articles/serverless.html