您的位置:首页 > 其它

从头开始写一个迷你dubbo之解析

2018-03-28 15:23 501 查看
从头开始写一个迷你的dubbo,仅用作学习用,学习的过程中更深入的了解下dubbo,同时也补充下其他的知识。

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源码解析