微服务-API网关-协议转换(泛化调用)

本文探讨了RPC和REST的区别,指出REST常用于对外接口,RPC用于内部高效通讯。介绍了API网关在协议转换中的作用,推荐内部使用RPC,外部使用REST。讨论了主流RPC框架如gRPC、Thrift和Dubbo的特点,强调跨语言平台的重要性。最后,解释了API网关如何进行泛化调用来处理不同协议间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RPC和REST的区别

REST和RPC是两种通讯方式,并不是协议,这一点大家要注意。

REST是基于HTTP协议的,而RPC可以基于HTTP协议来实现,也可以通过TCP协议来实现。

业界普遍采用的做法是,内部系统之间调用用 RPC,对外用 REST,因为内部系统之间可能调用很频繁,需要 RPC 的高性能支撑。对外用 REST 更易理解,更通用些。

API网关内部和外部通讯方式

在进行协议转换前我们要先思考一个问题,从什么协议转成什么协议呢?

我们说的协议转换是把客户端的请求协议转为微服务内部的接口协议,处理完之后再把结果转化成客户端能够接受的协议类型。

  • 对于客户端的请求,我们建议采用适用面广泛的REST方式,另外,还可以借助于Swagger这样的工具生成接口代码,对于外部用户来说使用更方便。
  • 对于微服务内部的通讯,建议采用性能更好的RPC通讯方式。因为RPC相对于REST方式效率更高一些。

主流的几种RPC框架

RPC框架按可否跨语言来分类,可以分为两种,一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的。

跟语言平台绑定的开源 RPC 框架主要有下面几种:

  • Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。
  • Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。
  • Spring Cloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,仅支持 Java 语言

而跨语言平台的开源 RPC 框架主要有以下几种:

  • gRPC:Google 于 2015 年对外开源的跨语言 RPC 框架,支持多种语言。
  • Thrift:最初是由 Facebook 开发的内部
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值