GithubHelp home page GithubHelp logo

lukehuang / nettyrpc-java Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fangzi123/nettyrpc-java

0.0 1.0 0.0 238 KB

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

Java 100.00%

nettyrpc-java's Introduction

项目名称

【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端使用

扩展

参考

nettyrpc-java's People

Contributors

fangzi123 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.