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