Alibaba Cloud Toolkit(簡稱Cloud Toolkit)是為開發者提供的一款IDE插件,您可以使用Cloud Toolkit快速創建Apache Dubbo應用樣例工程,驗證后,再使用Cloud Toolkit部署到EDAS上。本文以IntelliJ IDEA為例介紹如何創建一個以Nacos作為注冊中心的Apache Dubbo應用樣例工程。
準備工作
在使用Cloud Toolkit創建Apache Dubbo應用樣例工程前,請完成以下工作:
在IntelliJ IDEA中安裝和配置Cloud Toolkit。
如果您使用Eclipse,請參見在Eclipse中安裝和配置Cloud Toolkit。
如果您此前已經安裝了Cloud Toolkit,請檢查Cloud Toolkit是否為2019.6.2及以上版本。如果低于2019.6.2,請升級。
在IntelliJ IDEA的工具欄單擊Cloud Toolkit圖標,在下拉菜單中選擇About。
在About Alibaba Cloud Toolkit對話框中查看版本信息。
在本地啟動Nacos Server。
本文的樣例工程的注冊中心為Nacos,在創建工程前,還需要先在本地啟動Nacos Server。
下載最新版本的Nacos Server 。
解壓下載的Nacos Server壓縮包。
進入
nacos/bin
目錄,啟動Nacos Server。Linux/Unix/Mac系統:執行命令
sh startup.sh -m standalone
。Windows系統:雙擊執行
startup.cmd
文件。
可選:
在本地開發應用時,可以使用Alibaba Cloud Toolkit插件實現本地應用和部署在EDAS中的應用的相互調用,即端云互聯,而無需搭建VPN,幫助您提升開發效率。更多信息,請參見端云互聯簡介。
創建Apache Dubbo應用樣例工程
啟動IntelliJ IDEA,在菜單欄選擇File > New > Project。
在New Project對話框左側的導航欄中單擊Apache Dubbo,在右側界面中選擇本地安裝的JDK,然后單擊Next。
設置樣例工程的參數,單擊Next。
工程參數主要包括Dubbo的版本、注冊中心、配置方式和Spring Boot的版本。
參數說明及示例:
Project:選擇Maven Project。
GroupId:輸入相應的Group ID,如com.dubbo.example。
ArtifactId:輸入dubbo-demo。
Version:應用工程的版本,如1.0-SNAPSHOT。
Dubbo:在下拉菜單中選擇Dubbo的版本,如2.7.3。
Registry:選擇樣例工程的注冊中心,推薦選擇Nacos。
Configuration Method:樣例工程的開發方式。推薦使用Annotation。
Type:工程的服務類型,勾選Consumer和Provider,則會創建服務提供者和服務消費者的工程Demo。
Spring Boot:Spring Boot的版本,如2.1.5.RELEASE。
設置Project name和Project location,然后單擊 Finish。
創建完成后,可以在IntelliJ IDEA中看到Apache Dubbo樣例工程。此樣例工程中包含Provider、Consumer和調用的接口。
驗證Apache Dubbo應用樣例工程
本文的樣例工程使用Nacos為注冊中心,且使用了注解的開發方式,所以需要驗證Demo中的代碼和配置。同時,由于同時創建了Provider和Consumer,所以還需要驗證服務調用是否成功。
該樣例工程是一個Spring Boot + Dubbo的工程,檢查
pom.xml中是否
中包含Apache Dubbo的依賴。<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>${dubbo.version}</version> </dependency>
該樣例工程注冊中心選擇了Nacos,檢查
pom.xml中是否
中包含Nacos Registry的依賴。<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-registry-nacos</artifactId> <version>${dubbo.version}</version> </dependency>
同時在
application.properties
中檢查本地Nacos Server的配置。## Dubbo Registry dubbo.registry.address=nacos://localhost:8848
該樣例工程包含Provider和Consumer。
Provider提供了一個服務
com.dubbo.example.DemoService
,通過Dubbo協議暴露在12345
端口,配置在application.properties
中。# Dubbo Protocol dubbo.protocol.name=dubbo dubbo.protocol.port=12345
Consumer通過Nacos Server調用Provider提供的服務。
@Reference(version = "1.0.0") private DemoService demoService;
驗證服務調用
啟動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并驗證調用。
在IntelliJ IDEA中運行(Run)
com.dubbo.example.consumer.DubboConsumerBootstrap
的main
函數。觀察服務端(Provider)的打印日志,出現以下字段,則說明調用成功。
Hello Provider, response from provider: 30.5.XXX.XXX:12345
部署Apache Dubbo應用樣例工程
在完成Apache Dubbo樣例工程的創建和驗證后,可以使用Cloud Toolkit將該樣例工程打包(JAR包)并根據需要部署到EDAS的不同集群中,請參見: