# netty-rpc-framework **Repository Path**: guiyiqiao/netty-rpc-framework ## Basic Information - **Project Name**: netty-rpc-framework - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # netty-rpc-framework 一款面向Java编程语言的RPC远程过程调用服务,支持注解式服务的注册与调用。 参考dubbo框架结构 ![dubbo-protocol](.\img\dubbo-protocol.jpg) ## 完成功能 1.使用反射机制完成了客户端rpc接口调用的Proxy对象生成、通过网络调用服务端rpc接口的Invoker服务对象,进而执行rpc调用 2.使用Header+Content格式处理TCP粘包拆包问题 3.添加了心跳机制,在服务端检测出通道空闲一定次数时会关闭通道 4.使用SpringBoot来管理Bean对象,实现了RPC服务的注解式注册与发布、服务调用 5.使用ZooKeeper分布式组件进行服务注册与发现 6.使用高性能的Kryo序列化框架来代替JDK序列化,减少了序列化后的大小且序列化时间也同样有大的提升 (576 - 148) 7.引入随机数负载均衡 ## 待完成 ## 遇到问题 TCP粘包拆包问题(使用Header+Content处理数据粘包拆包) 关于Spring的bean注入时机问题。(想要在注入bean的使用使用其他的bean进行服务注册,不成熟的想法)解决方法,手动生成了Jedis客户端不交与IOC容器管理,略微繁琐但有效。 如何实现服务下线时自动注销服务地址 (使用zookeeper的临时节点)