SpringCloudAlibaba之遠程調用Dubbo實戰


SpringCloudAlibaba微服務實戰教程系列  

注意:以下實戰是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);
}
View 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注冊中心是否存在服務,存在則進行調用測試即可

 

更多:Dubbo與Zookeeper


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM