之前公司一直用的RPC分布式框架是新浪的motan,由于在测试环境服务很不稳定,最近已经开始换Dubbo,而且自从阿里宣布开始从新维护Dubbo后,一直更新不断,最近 Dubbo Spring Boot Starter也已发布,期待DUBBO会给带来更多的惊喜。下面介绍集成spring+zookeeper+dubbo。
搭建环境:
MacBook Pro
步骤
- 安装zookeper
去apache官网上下载即可,解压后,进入/zookeeper-3.3.6/conf目录下:
cp zoo_sample.cfg zoo.cfg
cat zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/Users/wenchao.wang/dev/zookeeper-3.3.6/data
# the port at which the clients will connect
clientPort=2181
上面只指定了数据存放路径,其他用的默认配置
然后进入bin目录下启动zkServer,通过ps命令发现服务已经启动:
- 新建web项目
lios-rest作为生产者,lios-admin作为消费者,lios-rest项目中需要引入dubbo依赖包,我用的是2.5.6,然后新建接口(DubboService)和实现类(DubboServiceImpl),lios-rest中的配置:
还需引用zkclient包:
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
lios-admin中的配置:
lios-admin也需要引用zkclient包。
把生产者,消费者服务起来后,进入zkCli:
发现dubbo节点中已经有服务注册进来了,而且消费者也可以调用。
- dubbo-admin管理平台安装
建议从github上下载源码,解压后进入dubbo-admin,运行
mvn package -Dmaven.skip.test=true
编译打包成功后,会生成war包,copy到tomcat目录下webapps下,然后启动tomcat,由于本地起了多个web服务,在server.xml中修改了tomcat端口为8888,进入解压后目录/webapps/dubbo-admin-2.5.8/WEB-INF,由于在本地环境,所以dubbo.properties里的配置可以不用修改,然后在浏览器中输入http://localhost:8888/dubbo-admin-2.5.8,会看到生产者和消费者信息: