跳转至

115-RPC实战与核心原理-115-RPC实战与核心原理

  •  115-RPC实战与核心原理|200
  • 书名: 115-RPC实战与核心原理
  • 作者: 115-RPC实战与核心原理
  • 简介:
  • 出版时间
  • ISBN:
  • 分类:
  • 出版社:

高亮划线

115-RPC实战与核心原理

开篇词 | 别老想着怎么用好RPC框架,你得多花时间琢磨原理

01 | 核心原理:能否画张图解释下RPC的通信流程?

02 | 协议:怎么设计可扩展且向后兼容的协议?

03 | 序列化:对象怎么在网络中传输?

04 | 网络通信:RPC框架在网络通信上更倾向于哪种网络IO模型?

  • 📌 零拷贝有两种解决方式,分别是 mmap+write 方式和 sendfile 方式,其核心原理都是通过虚拟内存来解决的。这两种实现方式都不难,市面上可查阅的资料也很多,在此就不详述了,有问题,可以在留言区中解决。 ^6-12154-12264
    • ⏱ 2024-05-30 16:16:48

05 | 动态代理:面向接口编程,屏蔽RPC处理流程

  • 📌 单纯从代理功能上来看,JDK 默认的代理功能是有一定的局限性的,它要求被代理的类只能是接口。原因是因为生成的代理类会继承 Proxy 类,但 Java 是不支持多重继承的。 ^7-11041-11127

    • ⏱ 2024-05-30 17:12:57
  • 📌 相对 JDK 自带的代理功能,Javassist 的定位是能够操纵底层字节码,所以使用起来并不简单,要生成动态代理类恐怕是有点复杂了。但好的方面是,通过 Javassist 生成字节码,不需要通过反射完成方法调用,所以性能肯定是更胜一筹的。在使用中,我们要注意一个问题,通过 Javassist 生成一个代理类后,此 CtClass 对象会被冻结起来,不允许再修改;否则,再次生成时会报错。 ^7-11685-11880

    • ⏱ 2024-05-30 17:14:43
  • 📌 Byte Buddy 则属于后起之秀,在很多优秀的项目中,像 Spring、Jackson 都用到了Byte Buddy 来完成底层代理。相比 Javassist,Byte Buddy 提供了更容易操作的API,编写的代码可读性更高。更重要的是,生成的代理类执行速度比 Javassist 更快。 ^7-12065-12215

    • ⏱ 2024-05-30 17:14:37

06 | RPC实战:剖析gRPC源码,动手实现一个完整的RPC

07 | 架构设计:设计一个灵活的RPC框架

08 | 服务发现:到底是要CP还是AP?

09 | 健康检测:这个节点都挂了,为啥还要疯狂发请求?

10 | 路由策略:怎么让请求按照设定的规则发到不同的节点上?

11 | 负载均衡:节点负载差距这么大,为什么收到的流量还一样?

12 | 异常重试:在约定时间内安全可靠地重试

13 | 优雅关闭:如何避免服务停机带来的业务损失?

14 | 优雅启动:如何避免流量打到没有启动完成的节点?

15 | 熔断限流:业务如何实现自我保护?

16 | 业务分组:如何隔离流量?

答疑课堂 | 基础篇与进阶篇思考题答案合集

17 | 异步RPC:压榨单机吞吐量

18 | 安全体系:如何建立可靠的安全体系?

19 | 分布式环境下如何快速定位问题?

20 | 详解时钟轮在RPC中的应用

21 | 流量回放:保障业务技术升级的神器

22 | 动态分组:超高效实现秒级扩缩容

23 | 如何在没有接口的情况下进行RPC调用?

24 | 如何在线上环境里兼容多种RPC协议?

特别放送 | 谈谈我所经历过的RPC

结束语 | 学会从优秀项目的源代码中挖掘知识

读书笔记

本书评论