spring cloud和普通rpc框架的区别

spring cloud和普通rpc框架的区别

补了一部分,后续再补

背景

其实本文标题有点不对,Spring Cloud也是一种RPC框架,但是区别是它使用的是http协议的传输,整体技术和普通RPC如dubbo/thrift有很大区别,所以一般会分开说。但实际上比如美团的pigeon类似于dubbo,但是它也是支持http协议调用的。

什么是RPC

名称解释是:Remote Procedure Call。一般市场上如阿里的dubbo,点评的pigeon,谷歌的thrift,都是普通意义上的RPC框架。那RPC框架的作用是什么呢?RPC要解决的两个问题:

  • 解决分布式系统中,服务之间的调用问题。
  • 远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。
    首先来一张RPC的整体架构图:
    在这里插入图片描述
    下面,我们来梳理以下,RPC框架的必备条件。

传输协议

SpringCloud:http

序列化

注册中心

服务路由

负载均衡

IO框架

心跳机制

服务鉴权

服务隔离

服务治理

监控埋点

项目

thrift

SpringCloud

dubbo

gRPC

代码规范

基于thrift的IDL生成代码

基于JAX-RS规范

无代码入侵

基于.Proto生成代码

通讯协议

TCP

HTTP

TCP

HTTP/2

序列化协议

thrift

JSON

多协议支持,默认hessian

protobuf

IO框架

负载均衡

跨语言

可扩展性

你可能感兴趣的:(java,java,后端)