Skip to content

chenkang-noob/codenoob-rpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

codenoob-rpc

是本人学习了Netty相关知识之后实现的基于Netty的简单rpc框架。 其中是使用nacos作为注册中心以及实现了多种json、kory、protobuf等序列化方式。 实现了轮询、随机等负载均衡算法

亮点

  • 实现自定义协议
  • 实现了四种序列化算法:json、kory、protobuff等序列化方法
  • 应用层实现心跳机制,保证连接
  • 抽象良好,多种序列化机制和负载均衡算法可配置选择
  • 使用Nacos作为注册中心,提供服务信息
  • 利用Guvaa和CGlib、动态代理实现服务端的API限流

几种序列化的区别

  • json:跨平台,轻量级
  • kory:不跨平台,效率较高
  • protobuf:跨语言,效率最高。

负载均衡算法

轮询、随机、一致性哈希

线程上下文加载器 和 SPI的关系

SPI:为服务提供接口,不用修改代码就能切换具体服务的实现

应用层的心跳机制

TCP的心跳只能检查连续是否正常,而应用层的心跳机制可以检查应用层的操作是否可以正常读写。 TCP的连接释放时间较长:2小时。(可以通过配置文件修改,但是会影响所有该服务器的网络连接)。 TCP心跳只能检测连接存活,而不能检测连接可用。(也就是第一点)。 应用层心跳可以添加自定义逻辑,更加的灵活。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages