问题核心:
把原来强依赖的应用解耦 ~~ 比如之前要互相调用的通过pom文件直接引用的,现在不需要了 这玩意就是 zookeeper
那么,一定要有个东西来给各方面送信啊
原先工程项目结构
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文件加上
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
</dependency>
原先 service层没有 springstarter ,也加上
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
2:zk 的配置信息
主要就是告诉他 把服务放到哪儿,,去哪里取服务~~~
dubbo:
application:
name: works-services
#注册中心的协议和地址
registry:
protocol: zookeeper
address: 127.0.0.1:2181
#通信规则(通信协议和接口)
protocol:
name: dubbo
port: 20880
#连接监控中心
monitor:
protocol: registry
#开启包扫描,可替代 @EnableDubbo 注解
##dubbo.scan.base-packages=com.zang.gmall
哦了~~~
开始玩吧