使用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集群)中。