/nettyrpc-java

A simple RPC framework based on Netty, ZooKeeper or Nacos or Consul and SpringBoot

Primary LanguageJava

项目名称

【nettyrpc-java】 nettyrpc-java 是 rpc的java版实现,支持 kryo、protostuff、fastjson序列化协议。

核心功能点

  • 支持 TCP+protostuff/fastjson/kryo协议。
  • 支持 SpringBoot starter。
  • 支持多种naming服务,已支持List、File、nacos、Zookeeper、Consul。 可以灵活扩展支持 etcd、eureka、DNS等。
  • 支持多种负载均衡策略,比如random、round robin。
  • 支持interceptor功能,支持计数器、令牌桶等server端限流算法。
  • rpc功能可独立使用,不是必须依赖Spring和注册中心功能。
  • 基于SPI机制可灵活扩展Protocol、NamingService和LoadBalance。

Design:

design

快速开始

开发环境

java 11 && netty 4 && protostuff 1.0.8

引入maven依赖

SpringBoot环境:

<dependency>
    <groupId>com.nettyrpc</groupId>
    <artifactId>nettyrpc-spring-boot-starter</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

注册发现中心(list与file不需要):

nacos:

<dependency>
    <groupId>com.wangff</groupId>
    <artifactId>nettyrpc-naming-nacos</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

zookeeper:

<dependency>
    <groupId>com.wangff</groupId>
    <artifactId>nettyrpc-naming-zookeeper</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

Server端使用

Client端使用

扩展

参考