文章目录
文章说明
一:版本控制
二:共有依赖声明于父项目
三:创建共有API
1:定义公共接口
2:定义Bean
四:创建Provider
1:引入公共API
2:创建实现类
3:定义启动类
4:定义配置文件
5:启动成功之后的现象
五:创建Consumer
1:引入公共API
2:编写配置文件
3:定义启动类
本文内容整理自《孙哥说Dubbo系列视频课程》,孙帅老师课程细致、全面、深入、性价比极高。B站搜孙帅suns可以找到对应的试听视频,或者直接添加老师微信号suns45与他直接联系
安装完zookeeper之后,我们需要规范下开发, 我们之前基于 Spring方式展开介绍,好处就是完整了体会了调用关系不至于封装的那么厉害,但是这个跟主流的SpringBoot的方式还是有很大区别的。
同样是基于SpringBoot开发,前端研究的时候, Springboot的父项目仍然是SpringBoot项目,因为实际的开发过程中SpringBoot的父项目不一定是SpringBoot项目,有可能是任意形式的父项目。
本次我们构建项目就采用这种标准的形式,创建一个maven工程,删除src。在pom.xml里边设置我们所需要依赖的jar包的版本。在父项目的dependencyManagemeng中配置各种dependency选项,仅仅是对依赖版本进行了锁定,并不是对依赖进行了引入。如何证明这一点,只需要打开右侧maven的悬浮窗口刷新一下,看看有没有依赖引入进来即可。
8
8
UTF-8
3.1.10
2.7.12
org.apache.dubbo
dubbo-bom
${dubbo.version}
pom
import
org.springframework.boot
spring-boot-dependencies
${spring-boot.version}
pom
import
我们到这里仅仅是完成了依赖版本的锁定。
同时,我们需要严格注意官方为我们提供的zookeeper和Dubbo版本依赖配对关系。
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.apache.dubbo
dubbo-spring-boot-starter
org.apache.dubbo
dubbo-dependencies-zookeeper-curator5
${dubbo.version}
pom
zookeeper
org.apache.zookeeper
org.apache.zookeeper
zookeeper
3.8.1
这个时候,我们可以看一下maven的悬浮窗口里边,真正的有了maven依赖这就代表了dependency才是真正的依赖导入窗口。
com.suns
dubbo-protocol-api
1.0-SNAPSHOT
@DubboService
public class UserServiceImpl implements UserService {
@Override
public boolean login(String name, String password) {
System.out.println("UserServiceImpl.login name " + name + " password is " + password);
return false;
}
}
@SpringBootApplication
@EnableDubbo
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
spring:
application:
name: DUBBO-PROTOCOL-PROVIDER
dubbo:
protocol:
name: dubbo
port: -1
registry:
address: zookeeper://127.0.0.1:2181
值得一提的是这里的注册中心address后边的zookeeper这个协议就代表了我们要使用zookeeper作为我们的注册中心。
经过以上这样的处理之后,就可以让Dubbo扫描我们的impl并且发布成为一个RPC了。
启动提供者之前,必须要先启动我们的注册中心。
启动成功我们的Provider之后,对应的export和Register日志看到之后,我们可以打开我们的PrettyZoo连接上我们的zookeeper可以看见根节点下多了一个dubbo一个Services节点。这就代表注册起作用了。后续dubbo和Services节点会在后续进行介绍。
com.suns
dubbo-protocol-api
1.0-SNAPSHOT
spring:
application:
name: DUBBO-PROTOCOL-CONSUMER
dubbo:
registry:
address: zookeeper://127.0.0.1:2181
application:
qos-enable: false
@DubboReference
private UserService userService;
@Test
void test1() {
boolean ret = userService.login("xiaohei", "123456");
System.out.println("ret = " + ret);
}
至此,我们对应Dubbo协议的使用,如何引入注册中心,如何基于SpringBoot标准化开发就介绍完了。