搭建預備:
ZooKeeper安裝包:https://download.csdn.net/download/qq_38377525/81091193
https://download.csdn.net/download/qq_38377525/81091193
dubbo-admin客戶端:https://download.csdn.net/download/qq_38377525/81091530
https://download.csdn.net/download/qq_38377525/81091530
zk可視化工具:https://download.csdn.net/download/qq_38377525/81090760
https://download.csdn.net/download/qq_38377525/81090760
架構說明:

父工程:dubbo-spring-cloud
對外開放的普通maven工程:dubbo-spring-cloud-api
生產者/提供者:dubbo-spring-cloud-provider
消費者:dubbo-spring-cloud-consumer
第一步:創建一個父工程:dubbo-spring-cloud
1、pom檔案資訊如下:
<modules>
<module>dubbo-spring-cloud-api</module>
<module>dubbo-spring-cloud-consumer</module>
<module>dubbo-spring-cloud-provider</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.11.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
第二步:創建一個maven工程:dubbo-spring-cloud-api
1、撰寫一個對外開放的介面類:IHelloService,代碼如下
public interface IHelloService {
String sayHello(String name);
}
2、然后使用maven命令:mvn clean install -DskipTests在本地構建一下,方便下游服務呼叫
第三步:創建一個springboot提供者服務:dubbo-spring-cloud-provider
1、pom檔案資訊如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.cb</groupId>
<artifactId>dubbo-spring-cloud-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-client</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
2、實作api介面,代碼如下:
@Service //服務注冊
@org.springframework.stereotype.Service //spring注入
public class HelloServiceImpl implements IHelloService {
public String sayHello(String name) {
return name;
}
}
3、組態檔如下:
#dubbo相關配置
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.address=zookeeper://192.168.1.107:2181
dubbo.scan.base-packages=com.cb.dubbospringcloudprovider.impl
#cloud相關配置
spring.cloud.zookeeper.connect-string=192.168.1.107:2181
spring.cloud.zookeeper.discovery.instance-host=192.168.1.107
spring.cloud.zookeeper.discovery.instance-port=8088
spring.cloud.zookeeper.discovery.register=true
#spring相關配置
server.port=8088
spring.application.name=dubbo-spring-cloud-provider
4、啟動類如下:
@SpringBootApplication
@EnableDubbo
public class DubboSpringCloudProviderApplication {
public static void main(String[] args) {
SpringApplication.run(DubboSpringCloudProviderApplication.class, args);
}
}
5、然后啟動該類,啟動成功之后,打開zk可視化工具,查看注冊資訊,截圖如下:

說明提供者已被注冊,結構也是正確的
第四步:創建一個springboot消費者服務:dubbo-spring-cloud-consumer
1、pom資訊與提供者的pom相同即可
2、創建一個controller,遠程呼叫提供者和api介面類,實作遠程呼叫
@RestController
public class HelloController {
@Reference(retries = 0,check = false)
private IHelloService iHelloService;
@GetMapping("/say")
public String sayHello(){
return iHelloService.sayHello("hello world");
}
}
3、啟動類如下
@SpringBootApplication
@EnableDiscoveryClient
public class DubboSpringCloudConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(DubboSpringCloudConsumerApplication.class, args);
}
}
4、組態檔如下:
#指定要遠程呼叫的注冊服務名,不宣告的話默認是掃描全部服務
dubbo.cloud.subscribed-services=dubbo-spring-cloud-provider
#注冊服務名
spring.application.name=dubbo-spring-cloud-consumer
#是否注冊
spring.cloud.zookeeper.discovery.register=true
#注冊中心ip:port字串
spring.cloud.zookeeper.connect-string=192.168.1.107:2181
#掃描需要注冊的類包路徑
dubbo.scan.base-packages=com.cb.dubbospringcloudconsumer
server.port=8070
#注冊節點
dubbo.protocol.name=dubbo
#dubbo服務埠,默認是20880
dubbo.protocol.port=20881
#zk鏈接地址
dubbo.registry.address=zookeeper://192.168.179.114:2181
5、然后啟動該類,啟動成功之后,打開zk可視化工具,查看注冊資訊,截圖如下:

說明消費者注冊成功
第五步:遠程呼叫消費者的介面
1、訪問 http://localhost:8070/say
回傳:hello world
回傳正確,集成到這里就結束啦!
demo樣例鏈接:
https://gitee.com/IT_CB/dubbo-spring-cloud
https://gitee.com/IT_CB/dubbo-spring-cloud
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/426516.html
標籤:其他
上一篇:FlinkCDC-Hudi:Mysql資料實時入湖全攻略三:探索實作FlinkCDC mysql 主從庫同步高可用
