Git Product home page Git Product logo

shing-rpc's Introduction

shing RPC 框架

从 0 到 1,开发自己的 RPC 框架

项目介绍

基于 Java + Etcd + Vert.x 的高性能 RPC 框架.提供服务注册,发现,负载均衡。是一个学习RPC工作原理的良好示例。下面看一下RPC的调用流程:

实践基于 Vert.x 的网络服序列务器、化器、基于 Etcd 和 ZooKeeper 的注册中心、反射、动态代理、自定义网络协议、多种设计模式(单例 / 工厂 / 装饰者等)、负载均衡器设计、重试和容错机制、Spring Boot Starter 注解驱动开发等,大幅提升架构设计能力。

开源地址1

开源地址2

技术选型

后端

后端技术以 Java 为主,但所有的**和设计都是可以复用到其他语言的,代码不同罢了。

  • ⭐️ Vert.x 框架
  • ⭐️ Etcd 云原生存储中间件(jetcd 客户端)
  • ZooKeeper 分布式协调工具(curator 客户端)
  • ⭐️ SPI 机制
  • ⭐️ 多种序列化器
    • JSON 序列化
    • jackson 序列化
    • Kryo 序列化
    • Hessian 序列化
  • ⭐️ 多种设计模式
    • 双检锁单例模式
    • 工厂模式
    • 代理模式
    • 装饰者模式
  • ⭐️ Spring Boot Starter 开发
  • 反射和注解驱动
  • Guava Retrying 重试库
  • JUnit 单元测试
  • Logback 日志库
  • Hutool、Lombok 工具库

源码目录

  • shing-rpc-core:shing RPC 框架核心代码
  • shing-rpc-easy:shing RPC 框架简易版(适合新手入门)
  • example-common:示例代码公用模块
  • example-consumer:示例服务消费者
  • example-provider:示例服务提供者
  • example-springboot-consumer:示例服务消费者(Spring Boot 框架)
  • example-springboot-provider:示例服务提供者(Spring Boot 框架)
  • shing-rpc-spring-boot-starter:注解驱动的 RPC 框架,可在 Spring Boot 项目中快速使用

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.