RPC 实战与核心原理
高效解决分布式系统的通信难题
何小锋  京东云混合云首席架构师
专栏
已完结·共 29 讲
|
4.0w 人已学
|
收藏
我们要确保被调用的服务的业务逻辑是幂等的,这样我们才能考虑根据事件情况开启 RPC 框架的异常重试功能
来自:12 | 异常重试:在约定时间内安全可靠地重试
15 人划过
和同事讨论之后,我们找到了可用率这个突破口,应该相对完美了。可用率的计算方式是某一个时间窗口内接口调用成功次数的百分比(成功次数 / 总调用次数)。当可用率低于某个比例就认为这个节点存在问题,把它挪到亚健康列表,这样既考虑了高低频的调用接口,也兼顾了接口响应时间不同的问题
来自:09 | 健康检测:这个节点都挂了,为啥还要疯狂发请求?
10 人划过
但 Hessian 本身也有问题,官方版本对 Java 里面一些常见对象的类型不支持,比如:
来自:03 | 序列化:对象怎么在网络中传输?
9 人划过
可以通过捕获操作系统的进程信号来获取,在 Java 语言里面,对应的是 Runtime.addShutdownHook 方法,可以注册关闭的钩子。在 RPC 启动的时候,我们提前注册关闭钩子,并在里面添加了两个处理程序,一个负责开启关闭标识,一个负责安全关闭服务对象,服务对象在关闭的时候会通知调用方下线节点。同时需要在我们调用链里面加上挡板处理器,当新的请求来的时候,会判断关闭标识,如果正在关闭,则抛出特定异常。
来自:13 | 优雅关闭:如何避免服务停机带来的业务损失?
8 人划过
RPC 的负载均衡完全由 RPC 框架自身实现,
来自:11 | 负载均衡:节点负载差距这么大,为什么收到的流量还一样?
7 人划过
RPC 就是把拦截到的方法参数,转成可以在网络中传输的二进制,并保证在服务提供方能正确地还原出语义,最终实现像调用本地一样地调用远程的目的
来自:07 | 架构设计:设计一个灵活的RPC框架
6 人划过
我们可以提供一个专门的限流服务
来自:15 | 熔断限流:业务如何实现自我保护?
6 人划过
1 秒 600 毫秒之后,任务 C 被执行
来自:20 | 详解时钟轮在RPC中的应用
5 人划过
例 2:我们经常会谈到的容器编排引擎 Kubernetes,它本身就是分布式的,Kubernetes 的 kube-apiserver 与整个分布式集群中的每个组件间的通讯,都是通过 gRPC 框架进行的。
来自:开篇词 | 别老想着怎么用好RPC框架,你得多花时间琢磨原理
4 人划过
Trace 就是代表整个链路,每次分布式都会产生一个 Trace,每个 Trace 都有它的唯一标识即 TraceId,在分布式链路跟踪系统中,就是通过 TraceId 来区分每个 Trace 的。
来自:19 | 分布式环境下如何快速定位问题?
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
免费试读
讲师

何小锋

京东云混合云首席架构师

何小锋,京东云混合云首席架构师。1998 年毕业于北航,从事软件研发工作 22 年,热爱技术、追求卓越。2011 年加入京东,期间参加过 20 余次大促备战,见证了京东的技术演进过程。他曾带领团队攻克过很多技术领域难题,包括自主研发微服务框架、高性能消息中间件、智能监控以...查看更多
编辑推荐
包含这门课的学习路径

Java工程师

29门课程 154.7w人学习

架构师

28门课程 151.8w人学习

Go工程师

16门课程 89.9w人学习

后端工程师

27门课程 184.1w人学习
看过的人还看了
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 224923 人已学习

¥68¥199
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283787 人已学习

¥68¥199
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 123454 人已学习

¥98¥299
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 180990 人已学习

¥98¥399
从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)

66讲 | 152607 人已学习

¥68¥199
深入剖析 Kubernetes
张磊
Kubernetes 社区资深成员与项目维护者

57讲 | 116750 人已学习

¥68¥199