Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

daimuuc/wsd-rpc-java

Repository files navigation

wsd-rpc-java

基于Netty实现的RPC框架,可以让客户端直接调用服务端方法就像调用本地方法一样简单。

推荐书籍:分布式服务框架原理与实践_李林锋

RPC框架设计思路

image

服务提供端Server向注册中心注册服务,服务消费者Client通过注册中心拿到服务相关信息,然后再通过网络请求服务提供端 Server。

项目基本情况

V1.0版本

  • 基于BIO实现网络传输
  • 实现Kyro、Json和Hessian三种序列化机制
  • 客户端与服务端通信协议重新设计
  • 基于jdk动态代理实现客户端代理

V2.0版本

  • 使用Netty(基于NIO)实现网络传输
  • 使用注解自动注册服务

V3.0版本

  • 使用Zookeeper和Nacos作为管理相关服务地址信息的注册中心(zk支持单机模式、集群模式,nacos支持单机模式)
  • Netty重用Channel避免重复连接服务端
  • 增加Netty心跳机制
  • 客户端调用远程服务的时候进行负载均衡(目前已实现随机、轮询和一致性哈希三种算法)
  • 支持同一个接口多个实现类
  • 使用SPI机制实现松耦合
  • 实现gzip压缩机制
  • 客户端重用相关服务地址信息列表
  • 支持Protobuf序列化机制
  • CompletableFuture实现异步服务调用

V4.0版本

  • 集成Spring,通过注解注册服务、消费服务
  • 支持配置文件的方式进行配置
  • 容错机制
  • 兼容Http2.0协议
  • 服务性能监控和报警中心(流量控制、服务熔断和降级等)

About

基于Netty实现的RPC框架,可以让客户端直接调用服务端方法就像调用本地方法一样简单。

Resources

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /