问题核心:

把原来强依赖的应用解耦 ~~ 比如之前要互相调用的通过pom文件直接引用的,现在不需要了
那么,一定要有个东西来给各方面送信啊
这玩意就是 zookeeper

原先工程项目结构

image.png

webs 引用 services pom
接下来把这两个玩意当成两个应用

改造目标
webs不需要引用 pom 依然调用到service的服务

service层改造:

1:抽离出 services 中的 接口,pojo等信息到client包(这包作为发布包给到别人引用),其他不变
2:service层作为独立springapplication 启动服务
3:把服务发布到 zookeeper
4:把 @Service注解都换成dubbo的 @Service 记得加上(timeout=???,interfaceClass=???)不然访问直接报错

webs 改造

1:去掉原先引用service的pom
2:原先@Autowirte 全部改成 @Reference
OK
记得 启动 zookeeper 教程
这里有几个坑
1:新下载的conf需要自己复制一遍 conf-soxxx.cfg,如果端口没冲突啥都不用改
2: windows 直接点 cmd文件启动
3:如果还报错百度
其他东西都不用变,访问以下吧
~

注:

pom文件加上

  1. <dependency>
  2. <groupId>com.alibaba.boot</groupId>
  3. <artifactId>dubbo-spring-boot-starter</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>com.101tec</groupId>
  7. <artifactId>zkclient</artifactId>
  8. </dependency>

原先 service层没有 springstarter ,也加上

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter</artifactId>
  4. </dependency>

2:zk 的配置信息
主要就是告诉他 把服务放到哪儿,,去哪里取服务~~~

  1. dubbo:
  2. application:
  3. name: works-services
  4. #注册中心的协议和地址
  5. registry:
  6. protocol: zookeeper
  7. address: 127.0.0.1:2181
  8. #通信规则(通信协议和接口)
  9. protocol:
  10. name: dubbo
  11. port: 20880
  12. #连接监控中心
  13. monitor:
  14. protocol: registry
  15. #开启包扫描,可替代 @EnableDubbo 注解
  16. ##dubbo.scan.base-packages=com.zang.gmall

哦了~
开始玩吧
~~