RPC(Java)
文章平均质量分 88
深入理解RPC框架的设计与实现,同时提升解决分布式系统中常见问题的能力。
爱恨交织围巾
不止于 0 与 1 的堆叠......
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
场景面试题--下游服务全宕机?如何避免失败请求的大量堆积
隔离故障:防止下游故障扩散到客户端及上游服务;保护资源:避免客户端线程、连接被无效请求耗尽;自动恢复:通过半开状态试探,在下游恢复后自动恢复调用链路。记住:熔断器不是 “万能药”,但它是分布式系统抵御 “雪崩效应” 的第一道防线,与重试机制、限流策略结合使用,能显著提升系统的稳定性。原创 2025-07-20 15:43:17 · 913 阅读 · 0 评论 -
场景面试题--RPC 重试机制:如何安全应对网络抖动(导致节点下线)与临时故障?
幂等性是指 “多次执行同一操作,结果与执行一次相同”。幂等服务查询():多次查询结果相同;删除():多次删除与一次删除结果相同(都是订单 100 被删除);更新(,参数固定):多次更新结果相同。非幂等服务新增():多次调用会创建多个订单;转账(,从 A 转 100 到 B):多次调用会导致 A 多扣钱、B 多收钱。精准触发:仅对网络异常、超时等 “可能是临时故障” 的场景重试;安全边界:仅对幂等服务重试,通过 ZooKeeper 白名单实现精准控制。“重试是解药,但只给对的人吃”原创 2025-07-19 15:57:23 · 933 阅读 · 0 评论 -
场景面试题--RPC 负载均衡:当服务节点 “能力不一” 时该如何分流?
当服务节点能力不一时,“平均分配” 是低效且危险的。服务端注册自身权重;客户端按权重分配虚拟节点;哈希环路由确保流量比例与权重一致。这种方案既能发挥强节点的性能优势,又能避免弱节点过载,是 RPC 集群高可用的重要保障。原创 2025-07-19 15:45:34 · 1009 阅读 · 0 评论 -
面试场景题--本地缓存怎么做的?能保证缓存和服务的一致性吗?
本地缓存在 RPC 中的作用可概括为 “提速 + 减压减少对注册中心的请求次数,降低其负载;避免每次调用的网络延迟,提升 RPC 调用效率。而 ZooKeeper 的监听机制则是一致性的保障 —— 通过 “主动通知 + 被动更新” 的方式,既保证了缓存的实时性,又避免了客户端轮询带来的资源浪费。本地缓存做 “速查”,监听机制保 “一致”,二者结合是 RPC 客户端高性能与高可用的基础。原创 2025-07-18 15:08:40 · 552 阅读 · 0 评论 -
令牌桶算法:从原理到实战,详解分布式系统中的限流神器
令牌桶算法的核心价值在于:它既通过rate控制了系统的长期负载(避免过载),又通过capacity容忍了短时间的流量峰值(提升用户体验)。这种 “刚柔并济” 的特性,让它成为高并发系统中限流的首选方案。理解令牌桶不仅能帮你应对面试,更能在实际工作中设计出更合理的限流策略 —— 记住:限流的最终目的不是 “拒绝请求”,而是 “让系统在可控范围内稳定运行”,令牌桶正是这一目标的完美实现。原创 2025-07-18 15:00:42 · 1487 阅读 · 0 评论 -
序列化方式全解析:从原理到场景,教你选对数据传输的 “密码本“
序列化:将内存中的对象(如 Java 的 User 对象、Python 的 Dict)转换为可存储或传输的格式(如二进制流、JSON 字符串)的过程。反序列化:将传输格式的数据还原为内存中对象的过程。RPC 通信:服务 A 调用服务 B 时,需将请求参数序列化后通过网络传输;数据持久化:将对象保存到磁盘(如 Redis 缓存、数据库 BLOB 字段);跨语言交互:Java 服务与 Go 服务通信,需通过双方都能解析的格式交换数据。小体积、快速度、跨语言、好兼容。原创 2025-07-18 14:50:43 · 1095 阅读 · 0 评论 -
Netty 可靠性传输机制:从网络接口层到应用层的四层防护体系
/ 发送消息并设置超时重传// 发送消息if (!});return;if (!} else {});// 1秒后重试网络接口层:依赖硬件 CRC 校验,通过零拷贝减少传输错误网络层:依赖 IP 协议寻址与分片,框架层监控 ICMP 错误传输层:增强 TCP 协议特性,为 UDP 补充可靠性机制应用层:通过编解码校验、心跳机制、事务补偿确保业务正确性。原创 2025-07-16 09:28:28 · 1035 阅读 · 0 评论 -
Netty 在网络模型中的定位:不止于传输层,更连接应用层
回到最初的问题:Netty 属于网络结构模型中的哪一层?Netty 不局限于单一层次,而是横跨传输层与应用层的通信框架。对传输层:它封装了 TCP/UDP,通过EventLoop和Selector高效处理 IO 事件,解决了传输层的连接管理、数据传输等核心问题;对应用层:它通过编解码器、等组件,支持 HTTP、RPC 等应用层协议,允许开发者自定义业务逻辑。原创 2025-07-15 16:20:42 · 1019 阅读 · 0 评论
分享