[经验分享] 一小时带你理解RPC核心原理

何小锋,京东技术架构部首席架构师。专栏《RPC 实战与核心原理》

RPC是构建分布式基石。

  • 面向服务,SOA

  • 去中心化,微服务

  • 容器化,持续交互,云原生

标准RPC是什么样的?

RPC架构概要

协议

数据流-请求1-请求2-…-请求N

序列化

把对象转成可传输的二进制

  • JDK

    只适用于java

  • Json

    包大小比较大,数据量不大时有优势,跨语言

  • Hessian

    也不错

  • Protobuf

    GRPC,跨语言支持比较强

反序列化安全问题

白名单:

  1. 扫描接口类声明的类型
  2. 系统内置白名单
  3. 用户定义白名单

服务发现

健康检查

健康状态才有流量。

负载均衡

  • 随机负载

  • 一致性Hash负载

  • 自适应负载

    调用方知道后台负载是怎样的,自动分配流量。

集群策略

  • 快速失败
  • 失败重试
  • 定点调用

流量治理

  • 识别调用来源
  • 单节点限流:平滑限流算法
  • 集群限流

业务分组

增强安全认证

学习RPC方法

大量的网络编程知识。

  • c++ RPC框架:grpc、brpc(baidu)

你可能感兴趣的:([经验分享] 一小时带你理解RPC核心原理)