Alibaba(实习准备)—SOFARPC学习总结

本文详细介绍了蚂蚁金服的SOFARPC框架,包括其核心组件、连接管理与心跳机制、链路追踪、同步异步调用以及故障剔除策略。SOFARPC提供了丰富的扩展性和透明化的链路追踪,利用TCP keep-alive和Netty的IdleStateHandler维持连接,并支持多种调用类型,如同步、异步、回调和单向。此外,还讨论了服务的故障剔除和权重调整,确保高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SOFARPC框架

  在蚂蚁金服的分布式技术体系下,大量的技术产品(非网关类产品),都需要在内网,进行节点间通信。BOLT 提供了优秀的通信协议与通信框架,在 BOLT 的基础上,研发了自己的 RPC 框架,提供了负载均衡流量转发链路追踪链路数据透传故障剔除等基础能力。
  RPC框架应该包含的几个部分:User、User-stub、RPC-Runtime、Server-stub、Server。当 Client 想发起一个远程调用时,实际是通过本地调用 Client-stub,而 Client-stub 负责将调用的接口、方法和参数通过约定的协议规范进行编码并通过本地的 RPC-Runtime 实例传输到远端的实例。远端 RPC-Runtime 实例收到请求后交给 Server-stub 进行解码后发起本地端调用,在 Java中可以认为就是反射调用,调用结果再返回给 Client 端。
在这里插入图片描述

存在几个疑问:
1.Stub 怎么出现?         ——>创建代理解决了 Stub 的问题
2.怎么打包参数?          ——>序列化和网络协议编码解决了打包的问题
3.怎么传输?               ——>Bolt,Netty 等解决了网络传输的问题
4.怎么知道目标地址?       ——>服务发现与路由寻址解决了如何知道目标地址的问题
5.怎么发布一个 RPC 服务?  ——>Registry 来解决

在这里插入图片描述
SOFARPC 结构设计
在这里插入图片描述
其中 core和 core-impl 是核心的功能,包含 API 和一些扩展机制,extension-impl 中,则包含了不同的实现和扩展,比如对 http,rest,对 metrics,以及其他注册中心的集成和扩展。如 bootstrap 中对协议的支持,remoting 中对网络传输的支持,registry 中对注册中心的支持等。

客户端调用流程
在这里插入图片描述
当使用方对服务进行了引用配置之后:
1.RPC 生成 Proxy,作为用户可以操作的入口。
2.向服务中心订阅这个 RPC 的地址信息。
3.使用方发起调用,经过路由,负载均衡,各类 Filter 发起调用。

服务端处理流程
在这里插入图片描述
在服务端看来,通过 TCP 监听端口后:
1.接到 RPC 请求后,进行解码和反序列化。
2.选择线程池,进行分发。
3.经过 Filter,进行反射调用。
4.将结果序列化,编码,进行写回。

<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值