方法一:用版本號來區分
比如,開發環境上跑的服務版本是1.0.0,那麼爲了在本地打斷點調試某個服務,可以在本地啓動,將version設置爲2.0.0
服務提供者
@DubboService(version = "2.0.0")
public class DemoServiceImpl implements DemoService {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
}
服務消費者
@DubboReference(version = "2.0.0")
private DemoService demoService;
方法二:直接指定提供者
@DubboReference(url = "dubbo://192.168.71.1:20880")
private DemoService demoService;
或者,啓動的時候,通過 -D 參數指定
java -jar Dcom.cjs.dubbo.demo.api.DemoService=dubbo://192.168.71.1:20880 xxx.jar
或者,通過文件映射指定
如果服務比較多,用 -Ddubbo.resolve.file 指定映射文件路徑
java -Ddubbo.resolve.file=xxx.properties xxx.jar
然後在映射文件 xxx.properties 中加入配置,其中 key 爲服務名,value 爲服務提供者 URL
com.cjs.dubbo.demo.api.DemoService=dubbo://192.168.71.1:20880
com.cjs.dubbo.demo.api.xxxService=dubbo://192.168.71.2:20880
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>dubbo-demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>dubbo-demo-interface</module>
<module>dubbo-demo-provider</module>
<module>dubbo-demo-consumer</module>
</modules>
<properties>
<!--<spring-boot.version>3.2.0</spring-boot.version>-->
<!--SpringBoot 2.x和3.x版本都行-->
<spring-boot.version>2.7.11</spring-boot.version>
<dubbo.version>3.2.10</dubbo.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-bom</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
代碼地址:
https://gitee.com/chengjiansheng/cjs-dubbo-democ
參考:
https://cn.dubbo.apache.org/zh-cn/overview/tasks/observability/tracing/