开发中

高性能
远程过程调用框架

AK-RPC 是一个高性能、可扩展的远程过程调用框架。 专为简化分布式系统中的服务间通信而生。

Core Features

强大特性,尽在掌握

高性能

采用高效的网络传输和自定义序列化机制,确保毫秒级低延迟和超高吞吐量。

可扩展性

高度模块化设计,提供丰富的 SPI 扩展点,方便用户定制协议、序列化器等。

服务发现

内置智能服务注册与发现机制,默认支持 Zookeeper、Consul 等多种注册中心。

负载均衡

支持轮询、随机、Sticky 等多种负载均衡算法,提升系统的可靠性。

易用性

提供简洁的 API 和开箱即用的默认配置。完善的文档和示例代码,帮助开发者在几分钟内搭建起分布式应用,极大降低使用门槛。

Architecture

架构概览

AK-RPC 框架主要由三个核心组件组成:服务发现(Discovery)、服务器端(Provider)和客户端(Consumer)。 它们协同工作,共同完成高效的远程调用。

1

服务发现 (Discovery)

负责应用注册与发现,维护应用实例的实时状态与地址信息。

2

服务器端 (Provider)

接收客户端请求,执行相应的业务逻辑,并将结果序列化返回。

3

客户端 (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

Ready to Code?

快速上手

只需几行代码,启动您的第一个分布式服务。

1. 启动 Provider (服务端)

Java

@EnableRpcProvider
@SpringBootApplication
public class AkrpcProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(AkrpcProviderApplication.class, args);
    }

}
                        

2. 启动 Consumer (客户端)

Java

@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