如何定制开发 Dubbo 应用并完成打包、部署

接下来,我们将创建一个基于 Spring Boot 的 Dubbo 微服务应用,演示如何在此基础上进行定制开发,并最终打包部署到 Kubernetes 集群。

前置条件

  1. 本地可访问的 Kubernetes 集群

  2. 安装 dubboctl,确保通过以下命令初始化微服务集群

    dubboctl manifest install --profile=demo
    

快速创建应用

除了上一篇用到的 dubboctl create 之外,对于 Java 微服务体系,我们还可以使用 start.dubbo.apache.org(支持浏览器页面和 IntelliJ IDEA 插件)脚手架创建功能更丰富的应用模版。

请参照以上视频步骤创建示例项目,整个过程只需要一分钟时间。

定制开发微服务

请下载上一步创建的示例项目并导入您喜爱的 IDE 工具,接下来就可以对您的微服务应用进行定制化开发了。

定义服务

发布服务

本地启动应用

在 IDE 开发环境中,通过以下入口类可以快速启动 Dubbo 应用。

SpringApplication Run

我们在本地成功使用 Triple 协议发布了服务,在应用启动成功后,可直接使用 cURL 测试服务是否已经正常运行:

curl \
    --header "Content-Type: application/json" \
    --data '["Dubbo"]' \
    http://localhost:50051/com.example.demo.dubbo.api.DemoService/sayHello/

打包构建镜像

进入您的项目根目录,执行以下命令基于最新代码打包 Docker 镜像:

dubboctl build

build 命令会将源码打包为镜像,并推送到远端仓库,取决于网络情况,可能需要一定时间等待命令执行完成。

dubboctl deploy

deploy 命令会使用刚刚 build 打包的镜像生成 Kubernetes 资源清单。命令执行成功后,在当前目录看到生成的 kube.yaml 文件,其中包括 deployment、service 等 kubernetes 资源定义。

接下来,将应用部署到 Kubernetes 环境。

kubectl apply -f ./kube.yaml

检查部署状态

kubectl get services

更多内容

如何在虚拟机环境部署 Dubbo 应用

如果您当前无法使用 Kubernetes,请参考如何在虚拟机环境部署 Dubbo 应用。

Dubbo + Istio 服务网格

如果您计划使用服务网格,可以了解如何让 Dubbo 应用配合 Istio 控制面部署。



最后修改 September 21, 2023: update doc (d9f8dc6bc8)