文章目录
1 .是什么
dubbo的发展历史请参考官网 dubbo官方文档
dubbo本身就是一个服务治理框架,不需要集成其他插件就可以实现服务注册、负载均衡、服务容错、服务监控等功能,适用于数据量小的项目,只需使用一个框架就可以实现上述功能。
2. RPC远程通信Demo
1 .建立一个maven工程spring-boot-dubbo-example,创建模块spring-boot-dubbo-provider和spring-boot-dubbo-consumer模块,创建spring-boot-dubbo-api,主要放置接口
public interface DemoService {
String sayHello(String name) ;
}
- provider 和cosumer加入dubbo和api的依赖
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>
<dependency>
<groupId>org.example</groupId>
<artifactId>spring-boot-dubbo-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
- provider工程实现DemoService
@dubboService
public class DemoServiceImpl implements DemoService {
@Value("${dubbo.protocol.port}")
private String port;
@Override
public String sayHello(String name) {
System.out.println("port:"+port+" "+name);
return "hello "+ name;
}
}
- provider工程application.properties中加入配置信息
spring.application.name=dubbo-provider
#关闭注册中心检查
dubbo.registry.check=false
#配置服务注册地址,支持多种注册中心,zookeeper、nacos、redis等
dubbo.registry.address=zookeeper://192.168.222.128:2181
dubbo.protocol.name=dubbo
##用dubbo协议在20880端口暴露服务
dubbo.protocol.port=20880
#dubbo扫描路径
dubbo.scan.base-packages=com.example.springbootdubboprovider
- consumer创建访问层
@RestController
public class DemoController {
@dubboReference
DemoService demoService;
@GetMapping("/demo")
public String demo(){
return demoService.sayHello("张三");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。