SOFARPC is a high-performance, high-extensibility, production-ready Java RPC framework. Developed and refined over more than a decade at Ant Group across five generations, SOFARPC simplifies remote procedure calls between applications — providing transparent, stable, and efficient point-to-point service invocation without code intrusion.
The framework offers rich model abstractions and extensible interfaces (filter, routing, load balancing, etc.), making it easy to extend and adapt to varying business needs. It also provides a comprehensive MicroService governance solution built around SOFARPC and its ecosystem components.
| Category | Description |
|---|---|
| Transparent Invocation | High-performance remote service calls with zero code changes required |
| Flexible Routing | Multiple service routing and load balancing strategies (random, round-robin, weighted, etc.) |
| Multi-Registry Support | Seamless integration with ZooKeeper, Nacos, Apollo, and more |
| Multi-Protocol Support | Bolt, Rest, Dubbo, H2, HTTP/2 (gRPC), and custom protocols |
| Rich Invocation Modes | Synchronous, one-way, callback, generalized (泛化调用), and mobile-specific invocations |
| Fault Tolerance | Cluster failover, service warm-up, automatic fault isolation, and retry strategies |
| High Extensibility | Easily extend filters, routers, load balancers, and registry components |
| Observability | Built-in tracing, metrics, and logging integration for operational visibility |
# Clone the repository
git clone https://github.com/sofastack/sofa-rpc.git
cd sofa-rpc
# Build with Maven
mvn clean install -DskipTests
# Run examples
cd example && mvn clean installFor a detailed getting-started guide, see Getting Started with SOFA-Boot.
| Document | Description |
|---|---|
| Getting Started | Beginner's guide to SOFARPC |
| User Guide | Complete feature reference |
| Developer Guide | Build and development instructions |
| Release Notes | Version history and changelog |
| Road Map | Future plans and milestones |
- sofa-rpc-boot-projects — SOFABoot starters and samples for SOFARPC
| Requirement | Version |
|---|---|
| JDK | 8 or above |
| Maven | 3.2.5 or above |
We welcome contributions! Please see our Contributing Guide for details. Before submitting a non-trivial pull request, please sign the Contributor License Agreement (CLA).
SOFARPC is licensed under the Apache License 2.0. Third-party dependencies and their respective licenses are documented in NOTICE.
SOFARPC 是蚂蚁集团开源的高可扩展性、高性能、生产级 Java RPC 框架。历经十多年、五代版本的技术沉淀,SOFARPC 致力于简化应用间的 RPC 调用,为应用提供透明、稳定、高效的点对点远程服务调用方案,同时保持对业务代码的零侵入。
框架提供丰富的模型抽象和可扩展接口(过滤器、路由、负载均衡等),支持按需扩展各个功能组件。围绕 SOFARPC 核心及周边组件,提供完整的微服务治理方案。
| 类别 | 说明 |
|---|---|
| 透明化调用 | 高性能远程服务调用,对业务代码零侵入 |
| 灵活路由 | 支持随机、轮询、加权等多种服务路由与负载均衡策略 |
| 多注册中心 | 支持 ZooKeeper、Nacos、Apollo 等主流注册中心 |
| 多协议支持 | 支持 Bolt、Rest、Dubbo、H2、HTTP/2(gRPC)及自定义协议 |
| 丰富调用方式 | 支持同步、单向、回调、泛化调用、移动端调用等 |
| 容错容灾 | 支持集群容错、服务预热、自动故障隔离和重试策略 |
| 高扩展性 | 过滤器、路由、负载均衡、注册中心等组件均支持按需扩展 |
| 可观测性 | 内置链路追踪、性能指标和日志集成,开箱即用 |
# 克隆代码
git clone https://github.com/sofastack/sofa-rpc.git
cd sofa-rpc
# 使用 Maven 构建
mvn clean install -DskipTests
# 运行示例
cd example && mvn clean install详细入门指南请参考 SOFAStack 官方文档 - SOFA-Boot 快速开始。
| 文档 | 说明 |
|---|---|
| 快速开始 | 新手入门指南 |
| 用户手册 | 完整功能参考 |
| 开发者指南 | 构建与开发说明 |
| 发布历史 | 版本更新日志 |
| 发展路线 | 未来规划与里程碑 |
- sofa-rpc-boot-projects — SOFABoot 扩展项目,包含 Starter 及完整使用示例。
| 需求 | 版本 |
|---|---|
| JDK | 8 及以上 |
| Maven | 3.2.5 及以上 |
欢迎提交 Pull Request!详情请参阅 贡献指南。提交重大修改前,请先签署 贡献者许可协议(CLA)。
SOFARPC 最早源于阿里内部的 HSF,非常感谢毕玄创造了 HSF,为 SOFARPC 的发展奠定了良好基础,也非常感谢寒泉子、独明、世范在 SOFARPC 发展过程中作出的贡献。
SOFARPC 基于 Apache License 2.0 协议开源。第三方依赖及各自协议详见依赖组件版权说明。
