Dubbo学习笔记
1.改造项目
1.1引入依赖pom.xml
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-rpc-dubbo</artifactId>
<version>3.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-zookeeper</artifactId>
<version>3.0.7</version>
</dependency>
1.2配置application.yaml
dubbo:
application:
name: provider-application
protocol:
name: dubbo
port: 20880
registry:
address: zookeeper://127.0.0.1:2181
- 注:调用和被调用方都需要写这个配置
1.3 将接口提取到公共的模块
1.4 依赖
- provider实现common里面的接口
<dependency>
<groupId>org.example</groupId>
<artifactId>common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
-
consumer依赖common的jar包
<dependency> <groupId>org.example</groupId> <artifactId>common</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
-
consumer启动类,provider启动类开启Dubbo:@EnableDubbo
@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
@SpringBootApplication
@EnableDubbo
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
- 调用:@DubboReference(version="")
@Service
public class OrderService {
@Autowired
private RestTemplate restTemplate;
@DubboReference(version = "1.0")
private UserService userService;
@Value("${user_url}")
private String url;
@Value("${port}")
private Integer port;
public String getOrder() {
String address = url + ":" + port + "/user";
System.out.println(address);
return restTemplate.getForObject(address, String.class);
}
public String getOrderDubbo(){
return userService.getUser();
}
}