2019独角兽企业重金招聘Python工程师标准>>>
分布式服务框架与RPC框架
目前开源领域能找到的分布式服务框架也有不少,比较有代表性的包括Twitter的Finagle(基于Scala语言),Flipkart(印度最大的B2C网站)的Phantom(文档较少),Apache的Tuscany(有点陈旧,而且不是很适合互联网公司)等等,其实国内也有少数公司提供了开源Java服务框架,但dubbo在其功能完善性、架构优雅性、使用简便性等方面依然有其相对独特的优势,尽管dubbo绝大部分的开发都是2012年以前完成的。
另外,业界的开源RPC框架更是数量众多,难以计数,但是,一般的RPC框架和我们讨论的分布式服务框架还是具有相当大的距离,比如在远程调用的多协议、多序列化支持,完善的服务治理等等方面都有较多的缺失。也正是由于这种缺失,著名的Apache Thrift等框架在这里也可归为RPC框架,而主要构建在Thrift之上的Finagle、Phantom等框架更接近于完整的分布式服务框架(当然,Dubbo其实也支持Thrift,只是还不太完善)。
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
SOA(面向服务的体系结构) 面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互。rest(一种软件架构风格)
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。