欢迎志趣相投的朋友一起学习交流!
本人QQ:906570770
技术资料分享群:272811256
框架搭建
从https://github.com/alibaba/dubbo上下载源码,解压到本地目录;进入解压后项目的根目录(可以看到的pom.xml的那层目录),DOS命令进入该目录,在命令行里执行:mvn clean install -Dmaven.test.skip命令(前提是要安装maven,没有安装的小伙伴先安装一下,不过估计能玩到dubbo的基本都是老鸟了,这里应该是多此一举了),电脑一定要联网,行家会安装很多依赖的罐子包,命令执行结束后,会看到成功的提示进入目录下的所有\目标目录,就会看到3个打包好的罐包,如图:jar.png在项目的pom.xml的文件中加入依赖(注:版本号与自己打包罐包的版本号保持一致):
<! - 添加dubbo依赖 - > <依赖性> <的groupId> com.alibaba </的groupId> <artifactId的>多宝</ artifactId的> <版本> 2.6.1 </版本> </依赖性>
此案例注册中心使用被广泛使用与生产环境的动物园管理员,ZK的安装和配置不在这里赘述,网上有很多可参考的资料,请自行搞定。本人用了3个ZK的集群做的实验,完整代码及所需依赖包可在以下网址下载:https : //github.com/laoguan0420/dubbo(个人理解)Dubbo是基于接口调用的,跟主流的面向接口编程走向了一致,所以接口的定义是服务端和消费端的一个中介和关键,那就让我们首先来定义一个接口(本鸟参考了官方文档,如有需要,请打开:http ://dubbo.io/ );(说点过程中的波折:最开始没有把接口单独建一个工程,导致后续打包时遇到了一些困难,后来不得不重新搞一个工程,看网上有单独打包接口的一些博客,由于只是想先跑起来,就怎么简单怎么来了,如果有跟想法一样,请往下看)IproviderService.java
公共接口IProviderService { String sayHello(String name); }
注:其实就是一个简单的可供调用的接口,随便怎么写都行,除了包名和类名,我是直接拷贝的官网的例子然后打罐包,建议用行家,也可以用java的自带的(没有什么依赖的情况下,否则还是用maven省心省力),可能是我操作时候哪里有问题,执行mvn install,在后面两个接口实现类和调用接口类加入maven依赖竟然是空的,不得已暂时手动添加了一下JAR包,后续找到原因后会及时更新。按照官方的说法,达博是和春天一起用的,所以后面都用行家直接管理依赖了修改pom.xml的文件,主要是增加弹簧框架依赖和达博依赖,这里不再赘述,遇到问题的几率比较大,一般都是依赖包缺少和版本问题,如有需要的,我会将我的代码放到我的github上上,欢迎下载。下面几个就是我的配置出现的问题及解决方案:报错:java.lang.ClassNotFoundException:com.google.common.base.Function解决方 :安装Maven的依赖,如果不是用Maven的管理,也可直接下载JAR包到项目中
<依赖性> <的groupId> com.google.guava </的groupId> <artifactId的>番石榴</ artifactId的> <版本> 24.0的JRE </版本> </依赖性>
报错及解决:
报错:java.lang.IllegalStateException:无法注册dubbo:xxxCaused by:java.lang.IllegalStateException:KeeperErrorCode =未实现/ dubbo版本问题:
使用馆长时报错,原因是因为版本问题
动物园管理员版本:饲养员-3.4.11
cuartor版本:4.0.0
看馆长官网的声明:
地址:http : //curator.apache.org/zk-compatibility.html
目前是两个发布版本的Curator,2.xx和3.xx:
Curator 2.xx - 与ZooKeeper 3.4.x和ZooKeeper 3.5.xCurator 3.xx兼容 - 仅与ZooKeeper 3.5.x兼容,并支持动态重新配置等新功能。
解决方法:把cuartor版本降低到了2.xx.
欢迎志趣相投的朋友一起学习交流!
本人qq:906570770
技术资料分享群:272811256