我们要确保被调用的服务的业务逻辑是幂等的,这样我们才能考虑根据事件情况开启 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 人划过
*精彩内容为该课程各文章中划线次数最多的内容

编辑推荐

包含这门课的学习路径

Java工程师
29门课程 154.7w人学习

架构师
28门课程 151.8w人学习

Go工程师
16门课程 89.9w人学习

后端工程师
27门课程 184.1w人学习
看过的人还看了





