论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
云原生
›
API 架构(RPC和RESTful)
API 架构(RPC和RESTful)
灌篮少年
金牌会员
|
2024-9-26 20:13:27
|
显示全部楼层
|
阅读模式
楼主
主题
974
|
帖子
974
|
积分
2922
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
目次
1.引言
2.RPC
2.1.特点
2.2.应用
2.3.实现方式
2.4.优缺点
3. RESTful
3.1.特点
3.2.设计原则
3.3.长处
3.4.应用场景
4.比力
5.总结
1.引言
API(Application Programming Interface,应用程序编程接口)架构是设计和实现API的基础,它决定了API的交互方式、数据格式、安全策略以及系统的可扩展性和安全性。在API架构中,RPC(Remote Procedure Call,长途过程调用)风格和RESTful(Representational State Transfer,表述性状态转移)风格是两种常见的风格。
2.RPC
RPC(Remote Procedure Call,长途过程调用)风格是一种在分布式计算环境中广泛使用的通信协议,它允许一个程序调用另一个地址空间(通常是另一台机器上)的过程,就像调用本地过程一样,而不必要显式编码这个长途交互的细节。RPC风格的核心思想是将服务器端的代码或方法封装发展途可调用的服务。客户端在不知道服务实现细节的情况下,通过网络向服务器发送哀求,并等待服务器返回结果。
2.1.特点
长途调用
:RPC允许一台计算机上的程序通过网络调用另一台计算机上的程序,就像调用本地函数一样简单。
透明性
:对于调用方来说,RPC调用在编程层面是透明的,即调用方不必要关心底层网络通信的细节。
序列化与反序列化
:在RPC调用过程中,哀求和响应的数据必要在网络上传输,因此必要进行序列化和反序列化操作,将数据结构转换为二进制格式,以便在网络上传输。
客户机/服务器模式
:RPC采取客户机/服务器模式,哀求程序作为客户机,服务提供程序作为服务器。
多种传输协议
:RPC通常使用自定义的协议进行数据传输,这些协议大概基于HTTP或其他传输层协议,如TCP/IP等,详细选择取决于应用需求和网络环境。
机动性
:RPC允许开发者定义复杂的接口和数据结构,实用于必要高性能和机动性的场景。
2.2.应用
分布式系统
:在分布式系统中,不同的服务或模块必要进行长途调用来实现协同工作,RPC是实现这种通信的一种有效方式。
微服务架构
:在微服务架构中,服务之间的通信通常通过RPC来实现,因为它能提供高效、方便的服务间通信。
跨语言通信
:RPC通常支持跨语言的通信,使得不同语言编写的程序可以相互调用,促进了软件开发的机动性和多样性。
2.3.实现方式
RPC的实现方式通常包罗以下几个步骤:
定义服务接口
:使用接口描述语言(IDL)定义服务接口和数据结构,如Protocol Buffers、Thrift等。
生成代码
:根据IDL定义自动生成客户端和服务器端的代码,简化开发工作。
注册服务
:将服务注册到注册中心(如ZooKeeper、Consul等),以便客户端能够发现和调用服务。
序列化与反序列化
:在调用过程中,对哀求和响应的数据进行序列化和反序列化操作。
网络通信
:通过底层网络协议(如TCP/IP、HTTP等)进行数据的传输。
2.4.优缺点
RPC风格的长处包罗:
高效
:相比于HTTP等协议,RPC通常具有更高的传输服从和更低的延迟。
编程简单
:对于调用方来说,RPC调用在编程层面是透明的,简化了长途通信的复杂性。
机动性
:支持跨语言通信和自定义传输协议,适应不同的应用场景。
然而,RPC风格也存在一些缺点:
通用性较差
:由于RPC通常使用自定义协议和序列化方式,因此通用性不如HTTP等标准协议。
依赖性强
:RPC调用依赖于特定的服务框架和通信库,增加了系统的复杂性和维护本钱。
3. RESTful
RESTful风格则是一种基于HTTP协议的API设计方式,它强调资源的表示和状态转移。
3.1.特点
无状态性
:每次哀求都包罗了足够的信息,使得服务器能够处理惩罚该哀求,而不必要依赖任何服务器存储的上下文信息。
基于HTTP协议
:RESTful API使用HTTP协议作为客户端和服务器之间的通信协议,使用HTTP的GET、POST、PUT、DELETE等方法来表示对资源的获取、创建、更新和删除等操作。
资源定位
:RESTful API将网络中的资源抽象为一系列URL,每个URL都对应一个详细的资源。客户端通过访问这些URL来获取或操作资源。
自描述性
:RESTful API的接口设计直观且自描述,客户端可以通过URL和HTTP方法了解如何与服务器交互。
统一接口
:RESTful API遵照统一的接口原则,即使用标准的HTTP方法来表示对资源的操作,低落了客户端和服务器之间的耦合度。
分层系统
:RESTful API支持通过中间层来提高系统的可扩展性、安全性和可靠性。
3.2.设计原则
使用HTTP标准方法
:
GET:用于获取资源。
POST:用于新建资源(或更新资源,但在RESTful中更推荐使用PUT进行更新)。
PUT:用于更新资源,客户端必要提供完整的资源表示。
DELETE:用于删除资源。
URI设计
:
URI应简便明白,能够准确反映资源的层次结构和内容。通常使用名词来表示资源,克制在URI中使用动词。
资源的体现形式
:
RESTful架构支持多种资源体现形式,如JSON、XML等。客户端和服务器之间可以通过协商来决定使用哪种体现形式。
使用HTTPS协议
:
虽然RESTful API本身与HTTPS协议没有直接关系,但为了提高数据传输的安全性,建议使用HTTPS协议来加密客户端和服务器之间的通信。
3.3.长处
简便性
:RESTful API使用HTTP协议作为基础,使得接口设计简便明白,易于理解和使用。
无状态性
:提高了系统的可见性、可靠性和可拓展性。
可扩展性
:RESTful API的设计使得系统易于扩展和维护,可以通过添加新的资源来扩展功能。
跨平台性
:RESTful API基于HTTP协议,可以在任何支持HTTP协议的平台上使用,具有精良的跨平台性。
3.4.应用场景
RESTful风格在多个领域都有广泛的应用场景,包罗电商领域、Web应用程序、移动应用开发、物联网和嵌入式系统等。通过RESTful API,前端和后端可以实现高效的数据交互和协同工作,提高应用的性能和用户体验。
4.比力
RPC风格RESTful风格
核心思想
将服务器端的代码或方法封装发展途可调用的服务基于HTTP协议的API设计方式,强调资源的表示和状态转移
数据传输
使用自定义协议或基于HTTP的封装直接使用HTTP协议
关注点
过程调用和数据传输资源表示和状态转移
无状态性
大概依赖上下文信息严格遵照无状态原则
接口设计
机动性强,允许自定义接口和数据结构直观且自描述,遵照统一接口原则
实用场景
必要高性能和机动性的场景实用于Web服务,易于理解和使用
5.总结
RPC和RESTful是两种不同的接口设计风格,RPC更关注长途服务调用的过程,而RESTful更关注资源的表述和状态转移。
在实际应用中,可以根据项目需求和团队偏好选择适合的接口设计风格。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
灌篮少年
金牌会员
这个人很懒什么都没写!
楼主热帖
【靶场】THM-Pickle Rick-练习
【WinUI3】ListView / GridView 学习总 ...
每日算法之二叉搜索树的后序遍历序列 ...
Dubbo原理解析(非常透彻)
SAP WM高阶之下架策略M(Small Large Qu ...
【邂逅Django】——(一)创建项目 ...
JDBC核心技术
线程池
K3S系列文章-使用AutoK3s在腾讯云上安 ...
Arrya类常见方法学习
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
程序人生
DevOps与敏捷开发
SQL-Server
鸿蒙
.Net
网络安全
移动端开发
分布式数据库
快速回复
返回顶部
返回列表