文章目录
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,主要放置接口
2. 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("张三");
}
}