使用 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 集群)中,详情请参见应用部署概述