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的不同集群中,请参见: