全部产品
云市场

使用 Cloud Toolkit 开发 Dubbo 微服务应用样例工程

更新时间:2019-09-03 10:27:21

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,请升级。

    1. 在 IntelliJ IDEA 的工具栏单击 Cloud Toolkit 图标 Cloud Toolkit 图标,在下拉菜单中选择 About

    2. About Alibaba Cloud Toolkit 对话框中查看版本信息。

  • 在本地启动 Nacos Server。

    本文的样例工程的注册中心为 Nacos,在创建工程前,还需要现在本地启动 Nacos Server。操作步骤如下:

    1. 下载最新版本的 Nacos Server

    2. 解压下载的 Nacos Server 压缩包。

    3. 进入nacos/bin目录,启动 Nacos Server。

      • Linux/Unix/Mac 系统:执行命令sh startup.sh -m standalone
      • Windows 系统:双击执行startup.cmd文件。

创建 Apache Dubbo 应用样例工程

创建 Apache Dubbo 应用样例工程的步骤如下:

  1. 启动 IntelliJ IDEA,在菜单栏选择 File > New > Project

  2. New Project 对话框左侧的导航栏中单击 Apache Dubbo,在右侧界面中选择本地安装的 JDK,然后单击 Next

    创建 Apache Dubbo 工程

  3. 设置样例工程的参数,单击 Next

    工程参数主要包括 Dubbo 的版本、注册中心、配置方式和 Spring Boot 的版本。

    Apache Dubbo 工程基本参数

    参数说明及示例:

    • 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:工程的服务类型,勾选 ConsumerProvider,则会创建服务提供者和服务消费者的工程 Demo。
    • Spring Boot:Spring Boot 的版本,如 2.1.5.RELEASE
  4. 设置 Project nameProject location,然后单击 Finish

    工程名称和路径

创建完成后,可以在 IntelliJ IDEA 中可以看到 Apache Dubbo 样例工程。此样例工程中包含 Provider、Consumer 和调用的接口。

Apache Dubbo 工程

验证 Apache Dubbo 应用样例工程

本文的样例工程使用 Nacos 为注册中心,且使用了注解的开发方式,所以需要验证 Demo 中的代码和配置。同时,由于同时创建了 Provider 和 Consumer,所以还需要验证服务调用是否成功。

  • 该样例工程是一个 Spring Boot + Dubbo 的工程,检查pom.xml中包含 Apache Dubbo 的依赖。

    1. <dependency>
    2. <groupId>org.apache.dubbo</groupId>
    3. <artifactId>dubbo</artifactId>
    4. <version>${dubbo.version}</version>
    5. </dependency>
  • 该样例工程注册中心选择了 Nacos,检查pom.xml中包含 Nacos Registry 的依赖。

    1. <dependency>
    2. <groupId>org.apache.dubbo</groupId>
    3. <artifactId>dubbo-registry-nacos</artifactId>
    4. <version>${dubbo.version}</version>
    5. </dependency>

    同时在application.properties中检查本地 Nacos Server 的配置。

    1. ## Dubbo Registry
    2. dubbo.registry.address=nacos://localhost:8848
  • 该样例工程包含 Provider 和 Consumer。

    • Provider 提供了一个服务com.dubbo.example.DemoService,通过 Dubbo 协议暴露在12345端口,配置在application.properties中。

      1. # Dubbo Protocol
      2. dubbo.protocol.name=dubbo
      3. dubbo.protocol.port=12345
    • Consumer 通过 Nacos Server 调用 Provider 提供的服务。

      1. @Reference(version = "1.0.0")
      2. private DemoService demoService;

验证服务调用

  1. 启动 Provider。

    1. 在 IntelliJ IDEA 中运行(run)com.dubbo.example.provider.DubboProviderBootstrapmain函数。

    2. 观察标准输出。

      出现以下字段,说明 Provider 启动成功。

      1. 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)
      2. 2019-07-03 16:05:50.587 INFO 19246 --- [pool-1-thread-1] .b.c.e.AwaitingNonWebApplicationListener : [Dubbo] Current Spring Boot Application is await...
  2. 启动 Consumer 并验证调用。

    1. 在 IntelliJ IDEA 中运行(Run)com.dubbo.example.consumer.DubboConsumerBootstrapmain函数。

    2. 观察服务端(Provider)的打印日志,出现以下字段,则说明调用成功。

      1. Hello Provider, response from provider: 30.5.125.39:12345

部署 Apache Dubbo 应用样例工程

在完成 Apache Dubbo 样例工程的创建和验证后,可以使用 Cloud Toolkit 将该样例工程打包(JAR 包)并根据需要部署到 EDAS 的不同集群中。详情请参见:

Dubbo 应用部署到 EDAS 之后,可以进行服务治理,详情请参见 Dubbo 服务治理