采用高效的网络传输和自定义序列化机制,确保毫秒级低延迟和超高吞吐量。
高度模块化设计,提供丰富的 SPI 扩展点,方便用户定制协议、序列化器等。
内置智能服务注册与发现机制,默认支持 Zookeeper、Consul 等多种注册中心。
支持轮询、随机、Sticky 等多种负载均衡算法,提升系统的可靠性。
提供简洁的 API 和开箱即用的默认配置。完善的文档和示例代码,帮助开发者在几分钟内搭建起分布式应用,极大降低使用门槛。
AK-RPC 框架主要由三个核心组件组成:服务发现(Discovery)、服务器端(Provider)和客户端(Consumer)。 它们协同工作,共同完成高效的远程调用。
负责应用注册与发现,维护应用实例的实时状态与地址信息。
接收客户端请求,执行相应的业务逻辑,并将结果序列化返回。
负责负载均衡、发起远程调用请求,并处理异步或同步的响应结果。
graph TD
subgraph Core[AK-RPC 核心交互]
direction TB
C(Consumer
客户端) -->|RPC 调用| B(Provider
服务端)
B -->|注册 ip+port| A(Discovery
服务发现中心)
C -->|查找 ip+port| A
end
style A fill:#334155,stroke:#3b82f6,stroke-width:2px,color:#fff
style B fill:#1e293b,stroke:#8b5cf6,stroke-width:2px,color:#fff
style C fill:#1e293b,stroke:#10b981,stroke-width:2px,color:#fff
style Core fill:transparent,stroke:#475569,stroke-dasharray: 5 5,color:#cbd5e1
linkStyle 0 stroke:#10b981,stroke-width:2px
linkStyle 1 stroke:#8b5cf6,stroke-width:2px
linkStyle 2 stroke:#3b82f6,stroke-width:2px
只需几行代码,启动您的第一个分布式服务。
@EnableRpcProvider
@SpringBootApplication
public class AkrpcProviderApplication {
public static void main(String[] args) {
SpringApplication.run(AkrpcProviderApplication.class, args);
}
}
@EnableRpcProvider
@SpringBootApplication
@EnableConfigurationProperties(RpcConsumerProperties.class)
public class AkrpcConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(AkrpcConsumerApplication.class, args);
}
}
示例服务接口:io.github.akrpc.common.example.CalcService