赞
踩
最近新项目用到springboot 结合Dubbo,在一番折腾之后,终于跑起来基础框架结构,首次使用Dubbo 跟 Gradle,也踩了不少坑,所以总结一下项目搭建过程中的问题。防止今后再次遇到,也给其他道友指条明路,快速脱坑。
我这里使用zookeeper作为服务注册中心,版本3.5.5,下载地址: https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/
下载后,解压
要先配置一下,否则没法启动,启动会报错,找到安装目录下面的conf目录, 将zoo_sample.cfg 文件拷贝,修改成 zoo.cfg 文件,然后修改zoo.cfg文件,添加dataDri 跟dataLogDir,相应路径自行配置,启动即可。
启动zookeeper
window +R -> cmd 进入zookeeper安装目录bin目录下面,服务端启动用:zkServer.cmd
(如果没有看.cmd,开启文件后缀显示就行),正常启动即可。
下载dubbo-admin-master
链接:https://download.csdn.net/download/qing_mei_xiu/11614597
点击下载
解压,导入导IDE工具,启动即可。也可以将项目打war包,部署在tomcat,启动。两种方法二选其一。
访问:http://localhost:7001 如果无法启动,查看admin服务,resources目录下面,application.properties
配置文件,修改相关配置
server.port=7001
spring.velocity.cache=false
spring.velocity.charset=UTF-8
spring.velocity.layout-url=/templates/default.vm
spring.messages.fallback-to-system-locale=false
spring.messages.basename=i18n/message
spring.root.password=root #登录账号 跟 登录密码
spring.guest.password=guest
dubbo.registry.address=zookeeper://127.0.0.1:2181 #zookeeper 配置
新建model,取名dubbo-common服务,新建interface文件->UserService.java,提供一个实现方法getPeople,(User.java文件自行生成,这里就不贴图了)
作为一个公共模块,提供给provider跟consumer引入使用
新建model,取名dubbo-provider服务,新建UserServiceImpl.java 文件实现Interface.
注意:
@service不可少,并且该注解是alibaba 注解,非spring注解,用了此注解后就可以将provider暴露出去了。
dubbo相关gradle包引入
compile group: 'com.alibaba', name: 'dubbo', version: '2.6.1' /*搭载dubbo*/
compile ("org.apache.zookeeper:zookeeper:3.4.6") {
exclude group: 'org.slf4j'
}
compile ("org.apache.curator:curator-framework:2.12.0")
zookeeper依赖slf4j,有时会造成重复依赖报错,可以exclude 排除来解决。
provider启动,别忘了@EnableDubbo,否则链接不上zookeeper,无法实现注册。
新建model,取名dubbo-consumer服务,新建Controller文件,注入UserService,@Reference用alibaba注解。这样就可以调用到provider,暴露出来的UserService接口了。
dubbo相关gradle包引入和provider一样,springboot 启动类也是一样,别忘了@EnableDubbo
首先启动provider服务,在启动consumer服务,通过admin控制台,可以监听到服务启动
接口调用controller,consumer服务调用userService接口,实现了dubbo的RPC调用。
如果想要更加详细的服务监控,可以启动dubbo-monitor-simple服务,默认口8080
总结:
至此一个简单的springboot + dubbo + gradle的服务就完成了,麻雀虽小,五脏俱全。想要深入理解还需要阅读源码来增强内容,此demo仅供入门使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。