如何定制开发 Dubbo 应用并完成打包、部署
接下来,我们将创建一个基于 Spring Boot 的 Dubbo 微服务应用,演示如何在此基础上进行定制开发,并最终打包部署到 Kubernetes 集群。
提示
如果您只想快速体验 Dubbo 功能,请参考上一篇 如何快速开发和部署一个 Dubbo 应用。前置条件
本地可访问的 Kubernetes 集群
安装 dubboctl,确保通过以下命令初始化微服务集群
dubboctl manifest install --profile=demo
快速创建应用
除了上一篇用到的 dubboctl create
之外,对于 Java 微服务体系,我们还可以使用 start.dubbo.apache.org(支持浏览器页面和 IntelliJ IDEA 插件)脚手架创建功能更丰富的应用模版。
请参照以上视频步骤创建示例项目,整个过程只需要一分钟时间。
定制开发微服务
请下载上一步创建的示例项目并导入您喜爱的 IDE 工具,接下来就可以对您的微服务应用进行定制化开发了。
定义服务
发布服务
本地启动应用
在 IDE 开发环境中,通过以下入口类可以快速启动 Dubbo 应用。
我们在本地成功使用 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)