从头开始写一个迷你dubbo之解析
2018-03-28 15:23
501 查看
从头开始写一个迷你的dubbo,仅用作学习用,学习的过程中更深入的了解下dubbo,同时也补充下其他的知识。
提供完整暴露服务和服务引用功能
提供多协议支持
实现注册中心支持
提供自定义编解码
使用Netty和Mina
提供对多种序列化的支持
简单的暴露和服务引用
现使用TCP协议
使用Netty
使用Netty的编解码
使用Java序列化方式
编写Netty服务和Handler。
实现请求和相应分别对应的两个bean:Request和Response。
服务消费者端DubboConsumer,这是API,用来初始化消费者,和调用服务提供者。实际应该是先获取代理,在真正使用的时候采取调用服务提供者端,现在都在一步中完成了。
编写获取代理类DubboConsumerProxy。
编写Netty客户端和Handler。
测试都在sample的模块下。
还有很多要做的~加油!!
java rpc机制简介
java rpc机制简单来说就是服务调用者把要调用的接口名,方法名,参数等通过网络传给服务提供者。服务提供者监听到调用者发来的消息解析出要调用的哪个接口的哪个方法,以及入参等信息然后用动态代理执行,最后把执行的结果通过网络传输给调用者。 后话:通常为了保证网络传输的效率一般用netty实现网络传输,为了实现集群等高可用搞负载还需有注册中心,负载均衡,网关等协助实现。工程说明
mini-dubbo-provider
服务提供者端,主要是暴露服务,处理消费者端请求等mini-dubbo-consumer
服务消费者端,主要作用是引用服务mini-dubbo-common
一些公用类mini-dubbo-sample-*
sample是示例项目目标
可以使用API和Spring两种方式启动提供完整暴露服务和服务引用功能
提供多协议支持
实现注册中心支持
提供自定义编解码
使用Netty和Mina
提供对多种序列化的支持
已有实现
可以使用API启动简单的暴露和服务引用
现使用TCP协议
使用Netty
使用Netty的编解码
使用Java序列化方式
源码地址
https://github.com/dachengxi/mini-dubbo过程
现在的版本就是一个简单的RPC调用功能。下面是大概的过程:服务提供者端DubboProvider,这是API,用来启动服务暴露的功能,会调用Netty实现的服务端暴露服务,并监听处理。编写Netty服务和Handler。
实现请求和相应分别对应的两个bean:Request和Response。
服务消费者端DubboConsumer,这是API,用来初始化消费者,和调用服务提供者。实际应该是先获取代理,在真正使用的时候采取调用服务提供者端,现在都在一步中完成了。
编写获取代理类DubboConsumerProxy。
编写Netty客户端和Handler。
测试都在sample的模块下。
还有很多要做的~加油!!
相关文章推荐
- 从头开始写一个迷你dubbo
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始搭建一个dubbo+zookeeper平台
- 从头开始实现一个神经网络
- 从头开始编写一个android后台服务器