Build Status Coverage License Maven

项目名称

brpc-java 是 baidu rpc 的 java 版本实现,支持 baidu rpc、nshead、sofa、hulu、http、stargate、dubbo 等协议。

核心功能点

快速开始

开发环境

java 6+ && protobuf 2.5.0+

引入 maven 依赖

protobuf 2.x 环境

非 Spring 环境:

<dependency>
    <groupId>com.baidu</groupId>
    <artifactId>brpc-java</artifactId>
    <version>3.0.1</version>
</dependency>

Spring 环境:

<dependency>
    <groupId>com.baidu</groupId>
    <artifactId>brpc-spring</artifactId>
    <version>3.0.1</version>
</dependency>

Spring Boot 环境:

<dependency>
    <groupId>com.baidu</groupId>
    <artifactId>brpc-spring-boot-starter</artifactId>
    <version>3.0.1</version>
</dependency>

Spring Cloud 环境:

<dependency>
    <groupId>com.baidu</groupId>
    <artifactId>spring-cloud-brpc</artifactId>
    <version>3.0.1</version>
</dependency>

Zookeeper 注册中心:

<dependency>
    <groupId>com.baidu</groupId>
    <artifactId>brpc-java-naming-zookeeper</artifactId>
    <version>3.0.1</version>
</dependency>

Consul 注册中心:

<dependency>
    <groupId>com.baidu</groupId>
    <artifactId>brpc-java-naming-consul</artifactId>
    <version>3.0.1</version>
</dependency>

protobuf 3.x 环境

除了引入 protobuf 2.x 环境所需依赖外,还需要增加 protobuf 3.x 依赖:

<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>3.11.0</version>
</dependency>
<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java-util</artifactId>
    <version>3.11.0</version>
</dependency>

Server 端使用

Client 端使用

与 Spring 集成

扩展

一些设计

网络模型

采用 Netty 的 Reactor 网络模型,但跟常规用法有些不同:

零拷贝 Buffer

线程池 ThreadPool

比ConcurrentHashMap 更快的 FastFutureStore

压力测试数据

部署环境:

微信交流群: