概述
在最新Dubbo中我們可以將Dubbo的註冊到Nacos中進行服務的治理
依賴的準備
注意:以下所有依賴的組都是`org.apache.dubbo`
dubbo-spring-boot-starter
提供了dubbo基本的全部所需依賴以及springboot的自動配置的依賴
dubbo-registry-nacos
提供了dubbo所使用的的nacos註冊中心所需的依賴
如果不使用springboot則需要添加以下依賴
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.6</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.2.1</version>
</dependency>
準備好接口
在提供者和消費者兩端提供一個同一的接口的依賴,提供者負責提供接口的實現,消費者負責通過接口消費服務
例如:
public interface TestService {
String testStringLength(String string);
}
提供者實現接口
服務提供者將接口實現並通過註解或XML等方式暴露在註冊中心上
例如:
@Component // 這個@Component可以不要,在此存在是方便服務內部引用
@Service(version = "1.0.0") // 暴露接口的註解
public class TestServiceImpl implements TestService {
@Override
public String testStringLength(String string) {
return "字符串" + string + "長度:" + string.length();
}
}
暴露的服務在nacos上的服務名稱爲:providers:暴露接口包名:版本:組名
外部配置
spring:
application:
name: example
server:
port: 8080
dubbo:
registry:
address: nacos://localhost:8848
application:
name: dubbo-provider-demo
protocol:
name: dubbo
port: 20880
scan:
# 這個屬性必須有,代表被掃描暴露服務的包
base-packages: com.example.nacos.demo1.service
消費者消費服務
消費者在註冊中心上獲得服務提供者暴露服務的地址並進行調用
例如:
// 從註冊中心引用接口爲TestService的服務
@Reference(version = "1.0.0", check = false)
private TestService testService;
外部配置
server:
port: 9966
spring:
application:
name: customer
dubbo:
registry:
address: nacos://192.168.1.105:8848
consumer:
timeout: 10000