Dubbo
【黑马程序员Dubbo快速入门,Java分布式框架dubbo教程】
3 Dubbo 快速入门
文章目录
- Dubbo
- 3 Dubbo 快速入门
- 3.2 Dubbo 快速入门
- 3.2.3 服务消费者
3.2 Dubbo 快速入门
3.2.3 服务消费者
OK,之前我们 已经完成了 服务提供 者的改造
现在来改造 服务的消费者 , 即 web 模块
上来直接把依赖 取消了 ,
当然现在 不要之后,很明显, 自动注入那儿 就会 报错了
因为已经找不到 这玩意儿 了
现在 来这个模块 里新建 一个 接口
package com.dingjiaxiong.service;
/**
* ClassName: UserService
* date: 2022/11/13 21:15
*
* @author DingJiaxiong
*/
public interface UserService {
public String sayHello();
}
OK,现在 就有 了 ,现在 的这个 接口 就变成 “ 本地” 的接口 了
而且 在web 模块中,也已经加上 了对应的依赖
OK
在web.xml 中,把spring 配置的加载 干掉
现在 修改控制器
用这个 【远程注入的注解 】
这个注解 的作用:
-
从zookeeper 注册 中心获取userservice 的访问url
-
进行远程 调用【RPC】
-
将结果封装为 一个代理对象,给变量 赋值
同样的,总得告诉人家 zookeeper在哪儿 吧,所以要和 service 进行同样的 配置
直接抄过来
<!-- dubbo 的配置 -->
<!-- 1 配置项目的名称【唯一】 -->
<dubbo:application name="dubbo-web"/>
<!-- 2. 配置zookeeper【注册中心】 的地址 -->
<dubbo:registry address="zookeeper://xxxxxxxxxxx:2181"/>
<!-- 3 配置Dubbo 的包扫描 -->
<dubbo:annotation package="com.dingjiaxiong.controller"/>
OK ,这样 【消费者】 就算是改造 完成 了
直接启动
OK, 两个 都跑起来 了
浏览器访问 测试
没毛病!
一样的 成功访问 了
看看控制台 的日志
一堆日志
和老师一样 ,有点小问题 ,qos 是用来做远程监控的一个组件,意思是它 不能绑到 22222
看看service 那边 的日志
可以看到 它已经绑上了 22222 端口,所以 web 那边儿 报错 了,但是这个不影响 咱们的业务
我们可以改下 web 那边的启动绑定 端口
OK,重启web 服务
OK,再试一次吧
这次就肯定不会 报错了, 可以看到 绑 到 33333 上 了 【没毛病】
【现在 远程调用是实现了, 但是吧有个问题】
这两个 接口,一毛一样
如果将来 有一大堆 这种接口,而且有了 很多 的service 模块和 很多 的 web 模块,
如果是不同的开发团队来做
这下就很难 保证它们能够一致 了
所以将来的做法 是这样的
来一个 公共 接口
让 web 模块和service 模块 都依赖【maven 本地依赖】于 这个公共接口【模块】
OK,试试吧,再来一个 模块
直接创建
OK,相当于现在 把 那个接口抽出来
直接复制过来
现在就 可以把web 和 service 中的接口都删掉了
OK,删掉后,现在 要做的,唉,就是导入嘛
实现类 里面 导一下包
controller 里面也要导一下包
修改一下
现在把interface 模块 安装
OK
OK,重启两个服务
没问题
浏览器测试
没毛病,其实吧,如果大家 都
先把 这个干完,听这些 就会非常轻松 了
OK,快速入门 就这样吧