好久没有写博客了, 一方面是最近工作太忙了,还有就是因为在研究dubbo源码相关的,感觉没有怎么研究懂,我擦(╯—﹏—)╯(┷━━━┷
由于以前是使用springboot开发的,很简单,然后今年在这个新的公司使用的是dubbo框架,虽然对于我精通使用crud没有任何影响╮(╯_╰)╭,但是就是觉得不弄懂其中的原理就没有安全感
其实暗地里也偷偷的学习好久的dubbo了,大概的原理也懂了一丢丢,暂时没有深入,现在决定一遍写写博客,顺便深入一下其中源码,记录一下学习过程吧!
1.拉取源码
dubbo开源的,已经被阿里丢给apache维护了,所以我们直接去gitee 中进行下载,版本来个2.7.5吧,也可以根据自己情况自行下载其他版本的
然后我们可以使用idea或者eclipse打开,我这里使用idea,需要慢慢等着下载依赖,走,先打一把王者吧( ̄▽ ̄)ノ
2.注册中心
虽然说注册中心有很多种,比如Eureka,console,nacos,redis,zookeeper等等,但是dubbo注册中心一般就是使用zookeeper吧......
而且使用zookeeper有一些好处,后面肯定会好好的学习一波zookeeper,这个知识点也有很多,暂时先不管这么多,先把demo跑起来再说๑乛◡乛๑
下载zookeeper的方法应该不用多说,就是去下载一个zookeeper安装包,修改配置文件, 然后启动,可以参考这个老哥的博客
上图所示,看起来注册中心更像是一个缓存的作用吧!
当然,提供者和消费者可能都有很多个,其实上面这种架构也适用于springcloud,只不过如果是springcloud的话,第3个步骤走的就是http请求了
其实我觉得就是dubbo和springcloud的最大区别,在远程调用的时候,一个是走tcp调用(可以自己定义协议),一个是走http调用,有兴趣的可以看看网络五层协议,而且http请求会自带一些请求头,响应头,但是我们根本用不上这个,会消耗传输性能;
这就是为什么会有人说dubbo的效率会比springcloud高一点;
3.启动demo
瞎扯了一通,我们启动好了zookeeper,然后我们启动服务提供者(我记得我启动启动这个服务提供者的时候会报程序包org.apache.dubbo.rpc.protocol.rest.support不存在的错误,我们只需要把ContentType这个类复制到对应的org.apache.dubbo.config.bootstrap.rest包下就行了)
启动服务消费者
最后我们就能看到控制台的结果了,可以看到调用成功
到这里我们就把demo给跑起来了,先不要去纠结源码里怎么又这么多模块,有兴趣的可以自己先看看,了解一下
后面我们慢慢的分析其中的运行原理吧!