Skip to content

CCCLL/lrpc

Repository files navigation

介绍

lrpc 是一种高性能,高可扩展性的Java RPC框架,RPC,即 Remote Procedure Call(远程过程调用),调用远程计算机上的服务,就像调用本地 方法一样。RPC可以很好的解耦系统,对于服务开发者来说,屏蔽了底层网络通信细节,从而更专注于业务自身逻辑实现。

lrpc架构

此项目目前架构如图:

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

特性

  1. 注释较为详细,并在注释中添加了些知识点,适合阅读学习(实际项目上不建议写这么啰嗦的注释,代码尽量表明自己用意就好。)
  2. 客户端使用TCP长连接(在多次调用共享连接)
  3. TCP心跳连接检测
  4. 支持多种网络传输方式(支持基于javaIO方式的阻塞式传输,支持基于Netty的Reactor模型,推荐用后者)
  5. 支持流控
  6. 异步调用,支持Future机制,使用CompletableFuture接受服务提供端返回结果,优化了接收服务端返回值的过程
  7. 支持不同的load balance策略(目前实现了一种随机方式,其他方式待实现)
  8. 支持不同的序列化/反序列化(目前实现了Kryo方式,其他方式待实现)
  9. 运用了SPI机制,具有高扩展性,同时降低耦合性,可根据需要轻松改进功能
  10. 支持使用注解注册服务
  11. 支持使用注解进行服务消费

待完善&添加的点

...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages