详细介绍一下 SOFARPC
SOFARPC 是由蚂蚁金服(现蚂蚁集团)开发并开源的一款高性能、高可扩展性、生产级 Java RPC 框架。自 2018 年开源以来,它已在金融级场景中积累了超过十年的实践经验,迭代至第五代,成为支撑大规模分布式系统的核心组件。以下从多个维度对 SOFARPC 进行详细介绍:
一、核心功能与技术特点
-
无代码侵入与高性能调用
SOFARPC 通过 Java 动态代理机制实现透明的服务调用,默认采用基于二进制协议 Bolt(基于 Netty 的 NIO 异步非阻塞通信)实现高性能传输。其设计避免了业务代码的侵入,仅需通过配置即可完成服务发布与引用。 -
多协议与多注册中心支持
- 协议兼容性:支持 Bolt、HTTP/2、RESTful、Dubbo、H2C 等多种协议。例如,Bolt 专为金融场景优化,提供高吞吐量和低延迟。
- 注册中心扩展:兼容 ZooKeeper、Nacos、Eureka 等主流注册中心,并通过扩展机制支持自定义实现。
-
灵活的路由与负载均衡
- 路由策略:支持软负载(动态地址列表更新)和直连(测试环境绕过注册中心)。
- 负载均衡算法:提供随机、轮询、一致性哈希、加权响应时间等五种策略,支持动态调整权重以实现服务预热。
-
高可用与容错机制
- 故障剔除:自动监控服务调用质量,剔除异常节点。
- 集群容错:支持故障转移(Failover)、快速失败(Failfast)等模式,结合服务熔断(如集成 Hystrix)提升系统健壮性。
-
扩展性与微服务治理
- 扩展点设计:通过
ExtensionLoader
机制,允许用户自定义过滤器、路由、序列化等组件。 - 治理工具:集成链路追踪(SOFATracer、SkyWalking)、动态配置、限流熔断等功能,形成完整的微服务治理生态。
- 扩展点设计:通过
2022年7月9日大约 9 分钟