Skip to content

Netty-RPC, 基于netty实现的rpc框架。服务端支持自动注册到zk,停机自动从zk下线;客户端支持负载均衡,指定环境访问某server,同步调用,netty断线重连。

Notifications You must be signed in to change notification settings

kongzhidea/netty4-rpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

netty rpc

  • netty4
    • 4.1.*, 默认采用内存池
  • 采用hession序列化
    • 注意内存溢出问题,记得释放ByteBuf。 重要!!!
    • HessianEncoder 目前客户端和服务端使用的类型为:Serializable,但是继承的MessageToByteEncoder是可以指定泛型类型的,不是此类型则不处理。
      • 推荐写法为:public class HessianEncoder extends MessageToByteEncoder<RpcBaseModel>
      • 好处:客户端和服务端通信时候 不用传其他类型,还可以设置其他的编解码工具。
      • RpcBaseModel 是 RpcRequest和RpcResponse 的基类。
      • 对应的handler需要处理,如:RpcServerHandler和RpcClientHandler
      • 发消息地方需要处理,需要传RemotingCommand类型,如RpcServerHandler和RpcClient
  • 粘包拆包
  • 调用样例:
    • server 启动入口见:DeamonRunner, 启动脚本见 start.sh,停机脚本见:stop.sh
      • 服务自动治理, 见 RpcServer
      • 是否注册到zk上,见参数:registryFlag, 入口在 resources/server.properties。
    • client 调用样例:ServiceTest, ServiceSpringTest, ServiceSpringZKTest
      • zk 负载均衡,zk 配置文件见:com/netty4/rpc/core/registry/impl/zookeeper/zk.properties
      • 支持本地绑环境测试, 如 -Dnetty4.hosts.com.netty4.rpc.demo.api.UserService=localhost:9301
      • netty 同步调用

参考NettyRpc

  • 采用 protostuff 序列化

参考hrpc

About

Netty-RPC, 基于netty实现的rpc框架。服务端支持自动注册到zk,停机自动从zk下线;客户端支持负载均衡,指定环境访问某server,同步调用,netty断线重连。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published