何小锋,京东技术架构部首席架构师。专栏《RPC 实战与核心原理》
RPC是构建分布式基石。
-
面向服务,SOA
-
去中心化,微服务
-
容器化,持续交互,云原生
标准RPC是什么样的?
RPC架构概要
协议
数据流-请求1-请求2-…-请求N
序列化
把对象转成可传输的二进制
-
JDK
只适用于java
-
Json
包大小比较大,数据量不大时有优势,跨语言
-
Hessian
也不错
-
Protobuf
GRPC,跨语言支持比较强
反序列化安全问题
白名单:
- 扫描接口类声明的类型
- 系统内置白名单
- 用户定义白名单
服务发现
健康检查
健康状态才有流量。
负载均衡
-
随机负载
-
一致性Hash负载
-
自适应负载
调用方知道后台负载是怎样的,自动分配流量。
集群策略
- 快速失败
- 失败重试
- 定点调用
流量治理
- 识别调用来源
- 单节点限流:平滑限流算法
- 集群限流
业务分组
增强安全认证
学习RPC方法
大量的网络编程知识。
- c++ RPC框架:grpc、brpc(baidu)