使用Cloud Toolkit可以快速創建Dubbo工程,然后您可以將Dubbo工程部署到EDAS上。本文將介紹如何在IntelliJ IDEA使用Cloud Toolkit創建Apache Dubbo應用樣例工程(包含一個Provider和Consumer),并完成本地調用驗證。

前提條件

確保您在IntelliJ IDEA中安裝和配置Cloud Toolkit版本在2019.6.2及以上,安裝步驟請參見在IntelliJ IDEA中安裝和配置Cloud Toolkit

操作步驟

  1. 打開IntelliJ IDEA,在菜單欄選擇File > New > Project
  2. New Project對話框左側的導航欄中單擊Apache Dubbo,在右側界面中選擇JDK版本,然后單擊Next
  3. 設置工程基本配置,然后單擊Next。

    基本參數設置說明及示例:

    • Project:選擇Maven Project。
    • GroupId:輸入相應的Group ID,如com.dubbo.example。
    • ArtifactId:輸入相應的Artifact ID,如dubbo-demo。
    • Version:應用工程的版本,如1.0-SNAPSHOT。
    • Dubbo:選擇Dubbo的版本,如2.7.2。
    • Type:工程的類型,勾選ConsumerProvider,則會創建服務提供者和服務消費者的工程Demo。
    • Spring Boot:Spring Boot的版本,如2.1.5.RELEASE。
  4. 設置Project nameProject location,然后單擊Finish。

具體操作過程如下:

創建 Dubbo 工程

驗證Apache Dubbo應用樣例工程

通過Cloud Toolkit創建的Apache Dubbo應用樣例工程是一個Spring boot + Dubbo的工程。服務端(Provider)提供了一個服務com.dubbo.example.DemoService,通過Dubbo協議暴露在12345端口。

說明 由于默認配置為dubbo.registry.address=N/A,說明服務沒有注冊到任何注冊中心,需要客戶端(Consumer)通過直連的方式來發現服務。

步驟一:啟動Provider

  1. 在IntelliJ IDEA中運行(run)com.dubbo.example.provider.DubboProviderBootstrap的main函數。
  2. 觀察標準輸出。

    出現以下字段,說明服務端(Provider)成功啟動。

    2019-07-03 16:05:50.585  INFO 19246 --- [           main] c.d.e.provider.DubboProviderBootstrap    : Started DubboProviderBootstrap in 36.512 seconds (JVM running for 42.004)2019-07-03 16:05:50.587  INFO 19246 
    --- [pool-1-thread-1] .b.c.e.AwaitingNonWebApplicationListener :  [Dubbo] Current Spring Boot Application is await...

步驟二:啟動Consumer并驗證調用

在客戶端(Consumer)的com.dubbo.example.consumer.DubboConsumerBootstrap中有如下代碼:

@Reference(version = "1.0.0", url = "dubbo://127.0.0.1:12345")   
private DemoService demoService;

這表明客戶端(Consumer)通過指定服務端(Provider)地址dubbo://127.0.0.1:12345的直連方式調用服務。

  1. 在IntelliJ IDEA中運行(Run)com.dubbo.example.consumer.DubboConsumerBootstrap的main函數。
  2. 觀察服務端(Provider)的打印日志,出現以下字段:
    Hello mercyblitz, request from consumer: /30.5.124.39:59553
  3. 觀察客戶端(Consumer)打印日志,出現以下字段,則說明調用成功。
    Hello mercyblitz, response from provider: 30.5.124.39:12345
說明
  • 若要使用注冊中心進行服務注冊發現,請修改dubbo-demo/dubbo-demo-provider/src/main/resources/application.propertiesdubbo-demo/dubbo-demo-consumer/src/main/resources/application.properties文件中的dubbo.registry.address為對應的注冊中心的地址,如:zookeeper://localhost:2181。
  • 如果使用ZooKeeper為注冊中心,還需要在Provider和Consumer各自的樣例工程的pom.xml文件中添加ZooKeeper的依賴。

后續操作

在完成Apache Dubbo樣例工程的創建和調用驗證后,可以將該樣例工程打包(JAR包)并部署到EDAS的不同集群(主要為ECS集群和容器服務Kubernetes集群)中。