还在为项目初始化、依赖管理问题困扰?Dubbo Initializer 来了!

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 还在为项目初始化、依赖管理问题困扰?Dubbo Initializer 来了!

作者:Dubbo 社区


通过这篇文章,你将学习如何在 1 分钟内用 Dubbo Initializer 模板快速创建 Dubbo Spring Boot 项目,帮你解决项目初始化问题。


什么是 Dubbo Initializer?


Dubbo Initializer 是一款帮助开发者快速生成 Dubbo Spring Boot 项目的 UI 工具,它帮助生成具有基本 Dubbo 配置、代码示例、Web、SQL 等微服务组件的项目源码并提供 ZIP 包下载方式。下载后,你就可以将项目模板代码导入 IDE 开发环境并增加自己的业务逻辑,免去从头初始化项目的各种繁琐操作。


想马上体验使用 Dubbo Initializer 创建 Spring Boot 项目,请通过浏览器访问以下链接:https://start.dubbo.apache.org/


注:Initializer 仍在持续更新中,更多 Dubbo Feature 的支持将会陆续发布。


使用 Intializer 创建 Dubbo Spring Boot 微服务项目


使用浏览器打开 Initializer 地址:https://start.dubbo.apache.org/,你将看到以下界面:

image.png


选择 Dubbo 版本


Initializer 会使用 dubbo-spring-boot-starter 创建 Spring Boot 项目,因此我们首先需要选择 Dubbo 与 Spring Boot 的版本。

image.png


录入项目基本信息


接下来,填入项目基本信息,包括项目坐标、项目名称、包名、JDK 版本等。



选择项目结构


有两种项目结构可共选择,分别是 单模块 和 多模块,在这个示例中我们选择 单模块。



  • 单模块,所有组件代码存放在一个 module 中,特点是结构简单。
  • 多模块,生成的项目有 API、Service 两个模块,其中 API 用于存放 Dubbo 服务定义,Service 用于存放服务服务实现或调用逻辑。通常多模块更有利于服务定义的单独管理与发布。


选择依赖组件


我们为模板默认选择如下几个依赖组件:


  • Dubbo 组件
  • Java Interface
  • 注册中心,zookeeper
  • 协议 TCP
  • 常用微服务组件
  • Web
  • Mybatis
  • 模版引擎

image.png


基于以上选项,生成的项目将以 Zookeeper 为注册中心,以高性能 Dubbo2 TCP 协议为 RPC 通信协议,并且增加了 Web、Mybatis 等组件依赖和示例。


注意:上面选中的 Dubbo 组件也都是默认选项,即在不手动添加任何依赖的情况下,打开页面后直接点击代码生成,生成的代码即包含以上 Dubbo 组件。


如手动添加依赖组件,请注意 Dubbo 各个依赖组件之间的隐含组合关系限制,比如


  • 如果选择了【Dubbo Service API】-【IDL】,则目前仅支持选择 【Dubbo Protocol】中的 【HTTP/2】或 【gRPC】 协议。
  • 同一个依赖分组下,相同类型的依赖只能选择一个,比如 【Dubbo Registry&Config&Metadata】分组下,从注册中心视角【Zookeeper】、【Nacos】只能选一个,如果要设置多注册中心,请在生成的代码中手动修改配置。但注册中心、配置中心可以分别选一个,比如 Zookeeper 和 Apollo 可同时选中。


生成项目模板


  • 点击 “浏览代码” 可在线浏览项目结构与代码
  • 点击 “获取代码” 生成项目下载地址

image.png

解压的 ZIP 包下载到本地后,解压并导入 IDE 后即可根据需要开发定制 Dubbo 应用。


示例项目代码解读


以下以生成的单模块代码为例,讲解生成的代码含义。


1. 服务定义


public interface DemoService {    String hello(String arg);}


2. 业务逻辑实现


@DubboService
public class DemoServiceImpl implements DemoService {
    public String hello(String arg) {
        // put your microservice logic here
    }
}


3. 项目配置


dubbo:
  application:
    name: dubbo-demo
  protocol:
    name: dubbo
    port: -1
  registry:
    address: zookeeper://127.0.0.1:2181


4. 代码依赖


<dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-jdbc</artifactId>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-thymeleaf</artifactId>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
          <groupId>org.apache.dubbo</groupId>
          <artifactId>dubbo-dependencies-zookeeper</artifactId>
          <type>pom</type>
      </dependency>
      <dependency>
          <groupId>org.apache.dubbo</groupId>
          <artifactId>dubbo-spring-boot-starter</artifactId>
      </dependency>
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.3.0</version>
      </dependency>
  </dependencies>


总结


Dubbo Initializer 作为全面提升 Dubbo 易用性的一个重要规划,其功能仍在持续演进中。以下是正在推进的一些工作。


IntelliJ IDEA 官方合作


IntelliJ IDEA 2023 近期刚刚发布集成 Dubbo 的官方框架↓

Apache Dubbo in Spring Framework:

https://plugins.jetbrains.com/plugin/20938-apache-dubbo-in-spring-framework


当前,双方社区正在商讨基于 Dubbo Initializer 的集成方案,相信用不了多久,我们就能在你最喜欢的 IDE 中看到 Dubbo 项目模板的官方支持了。


Dubbo Boot Starters


除了 Dubbo Initializer 之外,Dubbo 社区还正在建设一批 Dubbo Boot Starters,目标是让用户能够做到零配置使用 Dubbo 框架,只需要引入 starter 依赖即可,不必关心繁琐的 pom 依赖和默认配置。

请在此快速体验 Dubbo Initializer 吧!

链接:https://start.dubbo.apache.org/

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
4天前
|
Dubbo Java 应用服务中间件
微服务框架(十)Maven Archetype制作Dubbo项目原型
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Maven Archetype的制作及使用,使用archetype插件制作Dubbo项目原型
|
6月前
|
监控 Dubbo 应用服务中间件
启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析
启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析
244 0
|
7月前
|
Dubbo Java 应用服务中间件
如何在Spring Boot项目中集成Dubbo并启用gRPC协议,来实现高效的分布式服务通信?
如何在Spring Boot项目中集成Dubbo并启用gRPC协议,来实现高效的分布式服务通信?
121 0
如何在Spring Boot项目中集成Dubbo并启用gRPC协议,来实现高效的分布式服务通信?
|
8月前
|
缓存 Dubbo Java
3步让Dubbo项目快速集成Sentinel
在微服务系统中,缓存、限流、熔断是保证系统高可用的三板斧。本文通过3个步骤,让Dubbo项目快速集成使用Sentinel实现系统限流。
|
8月前
|
Dubbo Java 应用服务中间件
dubbo项目拆分结构
dubbo项目拆分结构
39 0
dubbo项目拆分结构
|
9月前
|
XML Dubbo Java
2021-12-10 关于SpringBoot项目调用dubbo接口的笔记
2021-12-10 关于SpringBoot项目调用dubbo接口的笔记
74 0
|
10月前
|
Dubbo 应用服务中间件 API
2. 介绍一下 Dubbo 在项目中的应用场景,怎么用的?
2. 介绍一下 Dubbo 在项目中的应用场景,怎么用的?
72 0
|
10月前
|
分布式计算 监控 Dubbo
【e3项目学习二】——zk与dubbo的组合运用
注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。使用dubbo-2.3.3以上版本,建议使用zookeeper注册中心。
|
10月前
|
Dubbo Java 应用服务中间件
|
存储 缓存 监控
架构:第七章:基于Dubbo+Zookeeper项目架构
架构:第七章:基于Dubbo+Zookeeper项目架构
136 0
架构:第七章:基于Dubbo+Zookeeper项目架构