8 快速入门 dubbo
8 快速入门 dubbo
所需资料
https://wwn.lanzoub.com/b01jp495e 密码:7plr
注册中心 Zookeeper
- 官方推荐使用 zookeeper 注册中心;
- 注册中心负责服务地址的注册与查找,相当于目录服务;
- 服务提供者和消费者只在启动时与注册中心交互,注册中不转发请求,压力较小;
- Zookeeper 是 apache hadoop 的子项目,是一个树形的目录服务,支持变更推送,适合作为
dubbo 的服务注册中心,工业强度较高,可用于生产环境;
入门 demo 的架构
注意
如果在粘贴这些web.xml 或者pom.xml里面build里面的标签发送这样的报错提示,注意哦 这可能不是错误,不会影响到我们项目的运行。
服务提供者
1、一个空的maven项目
2、提供一个服务接口即可
项目目录结构
图中红框的需要我们创建
提供方的pom.xml
各种依赖请严格按照下面的版本
- 记得要更新pom文件哦!
- 当dependencies中出现依赖的版本信息 说明依赖引入成功了
8
8
UTF-8
5.0.6.RELEASE
war
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-tx
${spring.version}
com.alibaba
dubbo
2.5.7
org.apache.zookeeper
zookeeper
3.4.6
com.github.sgroschupf
zkclient
0.1
javassist
javassist
3.11.0.GA
org.apache.tomcat.maven
tomcat7-maven-plugin
8001
/
package
run
提供方接口
public interface HelloService {
String sayHello(String name);
}
暴露的提供方实现
@Service 这个注解不是spring的哦
@com.alibaba.dubbo.config.annotation.Service
public class HelloServiceImpl implements HelloService {
@Override
public String sayHello(String name) {
return "Hello," + name + "!!!";
}
}
服务提供方的配置文件spring.xml
<?xml version="1.0" encoding="UTF-8"?>
提供方的web.xml
<?xml version="1.0" encoding="UTF-8"?>
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:spring/spring.xml
服务消费方
项目目录结构
消费方的pom.xml
与服务方一致,只需要修改tomcat的端口为8002
消费方的Controller
因为我们是通过浏览器去访问的,所以要创建controller层,提供对外访问的接口
@RestController
public class HelloAction {
@com.alibaba.dubbo.config.annotation.Reference
private HelloService hs;
@RequestMapping("hello/{name}")
@ResponseBody
public String hello(@PathVariable String name) {
return hs.sayHello(name);
}
}
消费方的接口
注意:
- controller中要依赖HelloService,所以我们创建一个接口;
- 这里是消费方,不需要实现,因为实现会让服务方为我们搞定!跟8001服务提供方的线程远程通信
public interface HelloService {
String sayHello(String name);
}
消费方的springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
消费方的web.xml
<?xml version="1.0" encoding="UTF-8"?>
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring.xml
springmvc
/
启动测试
还是跟是实现zookeeper实现分布式锁一样启动哦
- 我们在这里配置了打包之后直接运行
- 所以我们执行打包命令即可,如果出错,先执行clean在执行package
如果执行出错,或者访问失败可以去查找以下问题
- @service注解是否是dubbo的
- linux服务器的防火墙是否关闭
- zookeeper的注册地址是否有误 linux查看本机ip 【ip address】
- 如果想看到自己的服务,可以先搭建dubbo的可视化工具,文章地址
当出现端口地址 且上面没有报错信息时,说明启动成功
可以看到我们的请求成功了