关于搭dubbo-demo的一些坑

刚开始学dubbo,根据官网annotation的demo搭一个。折腾了一天才搭起来。总结一下经验:

1、接口问题:

首先DemoService这个接口一定要是一个消费者和生产者共同引用的接口。我搭的时候,生产者项目里写一个DemoService,消费者项目里写一个DemoService。虽然两个看起来是一模一样,但是实际上不是同一个接口,类名是不一样的。所以导致启动消费者时@reference注解注入失败。必须另建一个项目并且把DemoService写在里面。消费者和生产者共同引用这个接口才行。

2、关于注册地址:

例子是用多播的方式。项目里面大多还是用zookeeper比较多,多播好像有的操作系统默认没开启,还要另外安装,这个我没尝试过。所以注册地址这里改成dubbo.registry.address=zookeeper://127.0.0.1:2181。当然这也要求必须启动zookeeper

3、使用dubbo-admin

在git上下载dubbo-admin,编译之后把war放到tomcat中启动。一定要使用这个,看看生产者的服务有没有部署上去。否则就是瞎折腾

4、关于依赖的包

dubbo的包我是用maven上的dubbo All。但执行之后还会报错例如找不到日志slf4j和curator,所以要加入

<dependency>
    <groupId>org.slf4j</groupId>
	<artifactId>slf4j-log4j12</artifactId>
	<version>1.7.22</version>
</dependency>
<dependency>
	<groupId>org.apache.curator</groupId>
	<artifactId>curator-framework</artifactId>
	<version>4.2.0</version>
	</dependency>
<dependency>
<dependency>
	<groupId>org.apache.curator</groupId>
	<artifactId>curator-recipes</artifactId>
	<version>4.2.0</version>
</dependency>

其中curator比较坑,可能会因为和zookeeper版本匹配问题导致org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /curator/test01 类似这样的错误。网上可以搜到各种解决方式,当然简单的方式是你用zookeeper3.5版本,然后curator用4.0以上的版本就肯定不会有这种问题

发布了39 篇原创文章 · 获赞 5 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/sadoshi/article/details/97767306