是本人学习了Netty相关知识之后实现的基于Netty的简单rpc框架。 其中是使用nacos作为注册中心以及实现了多种json、kory、protobuf等序列化方式。 实现了轮询、随机等负载均衡算法
- 实现自定义协议
- 实现了四种序列化算法:json、kory、protobuff等序列化方法
- 应用层实现心跳机制,保证连接
- 抽象良好,多种序列化机制和负载均衡算法可配置选择
- 使用Nacos作为注册中心,提供服务信息
- 利用Guvaa和CGlib、动态代理实现服务端的API限流
- json:跨平台,轻量级
- kory:不跨平台,效率较高
- protobuf:跨语言,效率最高。
轮询、随机、一致性哈希
SPI:为服务提供接口,不用修改代码就能切换具体服务的实现
TCP的心跳只能检查连续是否正常,而应用层的心跳机制可以检查应用层的操作是否可以正常读写。 TCP的连接释放时间较长:2小时。(可以通过配置文件修改,但是会影响所有该服务器的网络连接)。 TCP心跳只能检测连接存活,而不能检测连接可用。(也就是第一点)。 应用层心跳可以添加自定义逻辑,更加的灵活。