/netty-demo-study

netty学习简单案列demo记录

Primary LanguageJava

netty-demo-study

netty学习简单案列demo记录

1.netty入门 -- netty-helloworld

2.netty的粘包 - netty-stick

3.netty支持的各协议,包含messagepack、protobuf以及私有协议 - netty-protocol

4.netty开发httpserver服务 - netty-httpserver

5.netty开发websocket服务 - netty-websocket

6.netty生产级心跳学习,利用IdleStateEvent模拟心跳、断线重连等 - netty-heartbeat

7.netty权威指南中的私有协议栈开发章节,内容包含protocol编解码、心跳、断线重连等。marshalling编解码未走通。 - netty-protocalstack

8.netty+zk实现简单rpc框架 netty-demo-rpc目录

简单RPC实现原理整理

zk:注册中心(netty服务ip/port信息)

--ServiceDiscovery服务发现

--ServiceRegistry服务注册

netty:底层通信

--基于probuffer编解码RpcDecoder、RpcEncoder

RPC请求和响应信息:

--RpcRequest:请求ID,请求接口类、请求方法名称,请求方法参数类型,请求方法参数

--RpcResponse:请求ID,响应错误信息,响应消息体

协议接口:HelloService

1.服务端

1):服务定义注解RpcService

2):定义服务RpcServer,结合spring,实现ApplicationContextAware, InitializingBean接口,从而可以在方法中通过自定义注解获得用户的业务接口和实现

3):启动netty服务,并将netty绑定的服务端ip端口 发布到zk上

4):定义服务HelloService以及实现,注解为RpcService

5):服务请求到达时由netty的业务hanlder(RpcHandler)处理,从Request中获取类、方法、参数,反射执行方法获取结果并返回netty客户端

2.客户端

1):注册一个代理RpcProxy服务

2):代理服务中连接zk,进行服务发现,获取服务端的ip/port信息

3):通过接口创建一个代理Proxy.newProxyInstance

4):执行方法调用,拼接RpcRequest

5):执行netty客户端请求到服务端

6):等待服务端反射处理将结果返回

参考资料:

1.《netty权威指南(第二版)》 2.https://blog.csdn.net/coffeeandice/article/details/79009951
对应github:https://github.com/fengjiachun/Jupiter

3.rpc资料参考 https://blog.csdn.net/tianjun2012/article/category/6637081

以上如有侵权或疑问请及时联系 qq:84226733