Giter VIP home page Giter VIP logo

xrpc's Introduction

如何设计一个 RPC?

详细计划请移步: https://www.yuque.com/yuanstack/pi0f3o

V1.0 - 框架基础与核心功能

  • 目标:建立RPC框架的基础结构,实现基本的RPC调用。
  • 内容:
    • RPC的基本概念介绍和原理图解析。
    • 支持TCP/HTTP网络协议的基础RPC调用。
    • 基本的JSON序列化协议实现。
    • 简单的服务接口设计与元数据描述。
  • 成果:能进行基本RPC调用的框架原型。

迭代一

  • xrpc-core
  • xrpc-demo
    • xrpc-demo-api
    • xrpc-demo-provider
    • xrpc-demo-consumer

迭代二

  • 异常场景处理
  • 注解合并:@Service、@XProvider
  • 屏蔽 Objec 中 toString()等方法
  • 返回值基本类型兼容处理

迭代三

  • 支持方法重载(方法签名)
  • 支持接口多实现类调用
  • 支持类型转换(int -> long)
    • 客户端 新 new 对象 -> LinkedHashMap
    • 数组类型转化支持
    • List、Map 类型支持

V2.0 - 高级功能与性能优化

  • 目标:引入高级功能(服务注册与发现、路由、负载均衡)和性能优化。
  • 内容:
    • 基于Zookeeper实现服务注册与发现。
    • 设计和实现服务路由与负载均衡机制。
    • 实现服务的基础过滤器机制。
    • 服务提供者与消费者的性能调优。
  • 成果:具备服务注册、发现、路由、负载均衡的高性能RPC框架。

迭代 1

  • 负载均衡
    • LoadBalancer
    • Router
    • Filter
  • 静态注册中心

迭代 2

  • 注册中心
    • ZK 实现

迭代 3

  • 重构

xrpc's People

Contributors

sylvanstack avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

zhaodigit

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.