使用Cloud Toolkit可以快速創建Dubbo工程,然后您可以將Dubbo工程部署到EDAS上。本文將介紹如何在IntelliJ IDEA使用Cloud Toolkit創建Apache Dubbo應用樣例工程(包含一個Provider和Consumer),并完成本地調用驗證。
前提條件
確保您在IntelliJ IDEA中安裝和配置Cloud Toolkit版本在2019.6.2及以上,安裝步驟請參見在IntelliJ IDEA中安裝和配置Cloud Toolkit。
操作步驟
- 打開IntelliJ IDEA,在菜單欄選擇 。
- 在New Project對話框左側的導航欄中單擊Apache Dubbo,在右側界面中選擇JDK版本,然后單擊Next。
- 設置工程基本配置,然后單擊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:工程的類型,勾選Consumer和Provider,則會創建服務提供者和服務消費者的工程Demo。
- Spring Boot:Spring Boot的版本,如2.1.5.RELEASE。
- 設置Project name和Project location,然后單擊Finish。
具體操作過程如下:
驗證Apache Dubbo應用樣例工程
通過Cloud Toolkit創建的Apache Dubbo應用樣例工程是一個Spring boot + Dubbo的工程。服務端(Provider)提供了一個服務com.dubbo.example.DemoService
,通過Dubbo協議暴露在12345
端口。
dubbo.registry.address=N/A
,說明服務沒有注冊到任何注冊中心,需要客戶端(Consumer)通過直連的方式來發現服務。
步驟一:啟動Provider
- 在IntelliJ IDEA中運行(run)
com.dubbo.example.provider.DubboProviderBootstrap
的main函數。 - 觀察標準輸出。
出現以下字段,說明服務端(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
的直連方式調用服務。
- 在IntelliJ IDEA中運行(Run)
com.dubbo.example.consumer.DubboConsumerBootstrap
的main函數。 - 觀察服務端(Provider)的打印日志,出現以下字段:
Hello mercyblitz, request from consumer: /30.5.124.39:59553
- 觀察客戶端(Consumer)打印日志,出現以下字段,則說明調用成功。
Hello mercyblitz, response from provider: 30.5.124.39:12345
- 若要使用注冊中心進行服務注冊發現,請修改dubbo-demo/dubbo-demo-provider/src/main/resources/application.properties和dubbo-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集群)中。