Spring Cloud Alibaba 初體驗(三) Nacos 與 Dubbo 集成


一、新建項目

新建項目,只放置接口,用於暴露 Dubbo 服務接口

public interface GreetingService {
    String greeting();
}

二、provider

本文以上文中的 Service1 作為 provider,以 Service2 作為 consumer

2.1 添加依賴

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>

2.2 實現接口

@Service
@Component
public class GreetingServiceImpl implements GreetingService {

    @Value("${server.port:0}")
    private Integer port;

    @Override
    public String greeting() {
        return "hello from port: " + port;
    }
}

@Service 為 org.apache.dubbo.config.annotation.Service (舊的版本為 com.alibaba.dubbo.config.annotation.Service),此處的 @Service 只能供 Dubbo RPC 調用,如果需要像之前一樣正常在 Controller 層調用需要再添加 @Component 注解 (或者直接不添加 @Component 在項目內也通過 Dubbo 調用)

2.3 新增配置

dubbo:
  scan:
    base-packages: com.karonda.service1.service.impl
  protocol:
    name: dubbo
    port: -1 # -1 表示端口自增
  registry:
    address: nacos://192.168.92.1:8848

三、consumer

3.1 調用服務

    @Reference
    private GreetingService greetingService;

    @RequestMapping("/dubboGreeting")
    public String dubboGreeting() {
        return greetingService.greeting();
    }

@Reference 為 org.apache.dubbo.config.annotation.Reference (舊的版本為 com.alibaba.dubbo.config.annotation.Reference)

3.2 新增配置

dubbo:
  protocol:
    name: dubbo
    port: -1
  registry:
    address: nacos://192.168.92.1:8848
  consumer:
    check: false # 不加此配置項目啟動時可能會失敗

啟動服務,訪問 http://localhost:8079/dubboGreeting 可以看到結果


免責聲明!

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



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