注意:以下實戰是Dubbo以Nacos為注冊中心的使用方式
一、Dubbo提取api模塊

package city.albert.email; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/10/9 12:22 PM */ public interface EmailCodeService { /** * * @param email * @param code * @return */ Boolean email(String email, String code); }
模塊pom的依賴如下:
<dependency> <groupId>city.albert</groupId> <artifactId>dubbo-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
二、服務提供者
1、引入pom文件依賴
注意:我的版本號是同父pom統一管理,一定注意版本兼容的問題
<!--接口依賴包--> <dependency> <groupId>city.albert</groupId> <artifactId>dubbo-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!--dubbo依賴包--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-dubbo</artifactId> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-apache-dubbo-adapter</artifactId> </dependency>
2、配置配置文件application.yml或者bootstrap.yml
spring:
cloud:
nacos:
#指定注冊中心需要引入spring-cloud-starter-alibaba-nacos-discovery依賴哦!本章不是注冊nacos重點不做解釋
discovery:
server-addr: 127.0.0.1:8848
application:
name: service-email8082
main:
allow-bean-definition-overriding: true
dubbo:
#dubbo掃描dubbo注解報名
scan:
base-packages: city.albert
protocol:
# dubbo 協議
name: dubbo
# dubbo 協議端⼝( -1 表示⾃增端⼝,從 20880 開始)
port: -1
cloud:
# 訂閱服務提供⽅的應⽤列表,訂閱多個服務提供者使⽤ "," 連接
subscribed-services: service-code8081
registry:
#注冊到springcloud服務
address: spring-cloud://localhost
3、實現接口
使用org.apache.dubbo.config.annotation包下的@Service注解聲明dubbo接口實現類
package city.albert; import city.albert.email.EmailCodeService; import org.apache.dubbo.config.annotation.Service; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/10/9 12:23 PM */ @Service public class EmailCodeServiceImpl implements EmailCodeService { @Override public Boolean email(String email, String code) { System.out.println("發送郵件"); return true; } }
三、服務消費者
1、引入pom文件依賴
注意:我的版本號是同父pom統一管理,一定注意版本兼容的問題
<!--接口依賴包--> <dependency> <groupId>city.albert</groupId> <artifactId>dubbo-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!--dubbo依賴包--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-dubbo</artifactId> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-apache-dubbo-adapter</artifactId> </dependency>
2、配置配置文件application.yml或者bootstrap.yml
spring:
cloud:
nacos:
#指定注冊中心需要引入spring-cloud-starter-alibaba-nacos-discovery依賴哦!本章不是注冊nacos重點不做解
discovery:
server-addr: 127.0.0.1:8848
application:
name: service-code8081
main:
allow-bean-definition-overriding: true
dubbo:
#dubbo掃描dubbo注解報名
scan:
base-packages: city.albert
protocol:
# dubbo 協議
name: dubbo
# dubbo 協議端⼝( -1 表示⾃增端⼝,從 20880 開始)
port: -1
cloud:
# 訂閱服務提供⽅的應⽤列表,訂閱多個服務提供者使⽤ "," 連接
subscribed-services: service-email8082
registry:
#注冊到springcloud服務
address: spring-cloud://localhost
3、實現接口
使用org.apache.dubbo.config.annotation包下的@Reference注入調用dubbo接口實現類
@Reference
EmailCodeService emailClient;
四、啟動兩個項目
觀察nacos注冊中心是否存在服務,存在則進行調用測試即可