hantsy
2020-02-16 13:02:56 +08:00
RCP 需要 Client 和 Server 交互,Client 调用看起来和本地调用一样,为了 Client 和 Server 交互隐藏远程调用的复杂性,往往借助一些 IDL 中间语言来定义交换协议。RPC 即没规定你用什么传输协议,也没限定什么传输格式( json,xml,binary 均可)。RPC 框架百花齐放,你学会一种,到另一种框架下完全又是全新的东西,跟没有学一样。至于你非要将 Feign 都能归到 RPC,那只能说 RPC 是任人打扮的 BZ。
任何一种 RPC 框架都是唱独角戏。
在 Java EE 领域,J2EE 1.2 (大约是 2000 年左右,记不清楚了,大约 20 年前吧)最初有一个 XML RPC 规范,使用 XML 作为传输格式,基于 HTTP 协议,但它仅限于 j2ee 程序。很快企业应用快速增长,互通的问题摆在眼前,SOAP Web Service 规范取代 XML RPC,实现不同的平台( Java,.net, 等)的互通(虽然不是很好), 可以说 SOAP 取得空前的成功。当然现在 Jaxrs 规范已经在事实取代了复杂的 SOAP (虽然很长一段时间不会消失)。